Отображение ключа в VIM - PullRequest
       1

Отображение ключа в VIM

2 голосов
/ 29 февраля 2012

Я пытался:

:map <F2> :.y" :g/<C-R>"/d<CR>

Не повезло: (

Что это делает, вставьте текущую строку в регистр "Затем, глобально, удалите строки, которые точно соответствуют линии врегистр. Он работает, когда я делаю это вручную.

:vmap <F2> ["]yy<ESC><ESC> :g/<C-R>"/d<CR>

Как и выше - я выбираю несколько слов, что угодно - я делаю выбор, а затем дергать его, чтобы зарегистрироваться ". Я затем глобально, удалитьстроки, которые совпадают с тем, что в реестре. Это работает, когда я делаю это вручную.

Что я делаю не так?

Ответы [ 3 ]

2 голосов
/ 29 февраля 2012

Вы можете попробовать это для первого:

:nnorempa <F2> :silent exe "g/".getline(".")."/d"<CR>

Во-вторых, как-то так, если вы хотите удалить только слова:

:vmap <F7> y:silent exe "%s/".@"."//g"<CR>

И это, если вы хотите удалить соответствующие строки:

:vmap <F7> y:silent exe "g/".@"."/d"<CR>
1 голос
/ 29 февраля 2012

Вы переназначили F2 на :.y" : и т. Д. .Вам нужно <cr> не простое место.Если вы наберете :.y" в vim и не нажмете ENTER, но пробел, ничего не произойдет.

Так что

:nnoremap <f2> :.y"<CR>:g/<C-R>"/d<CR>

может это сделать.

Тем не менее,предупреждение, если ваша строка содержит какой-либо из /\*[~$^., это может не сработать.Вы можете использовать регистр выражений для того, чтобы экранировать на месте:

:nnoremap <f2> :.y"<CR>:g/<c-r>=escape(@", '/\*[~$^.')<cr>/d<cr>

Еще лучше, без перезаписи вашего регистра по умолчанию ("):

:nnoremap <f2> :g/^<c-r><c-o>=escape(getline('.'), '/\*[~$^.')<CR>$/d<cr>

, который удалитвсе одинаковые линии.Еще обратите внимание, что 'ignorecase' или 'smartcase' имеют значение.

0 голосов
/ 01 марта 2012

Прежде всего - убедитесь, что вы используете vim:)

vim --version

Вот отображение, которое я собирался. Поскольку я просматриваю много данных в лог-файлах, это будет невероятно полезно. Выберите область, которую вы хотите удалить, и все экземпляры выделенной области готовы.

ПРИМЕЧАНИЕ: НЕ проходит через выделенный текст и экранирует любые символы регулярных выражений. Так что /, *, ^ это испортит.

:map <F2> y:g/<C-R>"/d<CR>

:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...