diff options
| author | Mathieu Ablasou <alexherbo2@gmail.com> | 2020-11-25 02:08:01 +0100 |
|---|---|---|
| committer | Mathieu Ablasou <alexherbo2@gmail.com> | 2020-11-25 05:06:07 +0100 |
| commit | 194b08cdcc238d1d926a20e0b789f1089450dbd5 (patch) | |
| tree | 64fb7d04ef3635f6dab7ebc252280d047c728588 /rc/connect/commands/:edit-search | |
| parent | 29a841cc9f1341be386f7a8228ae73953406ef6b (diff) | |
Add an :edit-search command
Diffstat (limited to 'rc/connect/commands/:edit-search')
| -rwxr-xr-x | rc/connect/commands/:edit-search | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/rc/connect/commands/:edit-search b/rc/connect/commands/:edit-search new file mode 100755 index 0000000..903bd79 --- /dev/null +++ b/rc/connect/commands/:edit-search @@ -0,0 +1,25 @@ +#!/bin/sh + +# Open files from search result. +# +# Input format: <file>:<line>:<column>:<text> + +# Execute the following Kakoune commands. +# +# Input: <file>:<line>:<column>:<text> +# Output: <file><line><column> +select_each_line='<a-s>_' +select_search_fields='s^(.+):(\d+):(\d+):(.+)$<ret>' +save_selections='Z' +select_file_save_and_restore='1s<ret>"fZz' +select_line_save_and_restore='2s<ret>"f<a-Z>az' +select_column_save_and_restore='3s<ret>"f<a-Z>az' +select_data='"fz' +prepare_output='y%<a-R>a<ret><esc>' +delete_end_of_file='ged' + +kak -f "${select_each_line}${select_search_fields}${save_selections}${select_file_save_and_restore}${select_line_save_and_restore}${select_column_save_and_restore}${select_data}${prepare_output}${delete_end_of_file}" | + +while read file; read line; read column; do + :edit "$file" "+$line:$column" +done |
