textselectiongeany

How can I block select in Geany?


I often need to select a block of text, like a leading character that occurs on many lines. LibreOffice has block selection. How can I do this in Geany?

For example, I want to remove the pipe and the space at the beginning of each line:

| Create another 'Login Role' for the 'auth' user:
| Role name: auth
| Password: auth
| Role privileges: Create database objects

Solution

  • It's called "column mode editing". Look here:

    Column mode editing (rectangular selections)

    There is basic support for column mode editing. To use it, create a rectangular selection by holding down the Control and Shift keys (or Alt and Shift on Windows) while selecting some text. Once a rectangular selection exists you can start editing the text within this selection and the modifications will be done for every line in the selection.

    It is also possible to create a zero-column selection - this is useful to insert text on multiple lines.


    Peter Mortensen has documented how to configure this on Lubuntu (for LXQt):

    https://pmortensen.eu/world2/2020/03/29/using-geany/#Column_mode_blues

    On Lubuntu, the keyboard shortcuts for selecting a rectangular area of text (“column mode” in UltraEdit) do not work, because they conflict with four default keyboard shortcuts in the window manager (LXDE? Openbox?), Shift + Alt + arrow up, Shift + Alt + arrow down, Shift + Alt + arrow left, and Shift + Alt + arrow right.

    Disable the window manager keyboard shortcuts by editing file ~/.config/openbox/lubuntu-rc.xml near “S-A-Up”, “S-A-Down”, “S-A-Left”, and “S-A-Right”. For example, change “S-A-Up” to “S-A-Up99”, “S-A-Down” to “S-A-Down99”, “S-A-Left” to “S-A-Left99”, and “S-A-Right” to “S-A-Right99”, respectively. And add an XML comment as to why and document the original values (so they can more easily be reverted). Edit and update (without a restart required):

    vi ~/.config/openbox/lubuntu-rc.xml
    openbox --reconfigure
    

    It was tested with Lubuntu 18.04 (32 bit).