2016-06-02 4 views
1

Я пытаюсь сопоставить ключ с общей функцией, которая использует [surround.vim], чтобы взять каждую строку в абзаце и добавить круглые скобки. Пример:Как переназначить ключ в Vim с внутренним вызовом визуального режима в блочном режиме?

1 0 1 1 
2 1 0 0 
3 2 0 0 

Для

(1 0 1 1) 
(2 1 0 0) 
(3 2 0 0) 

Я могу успешно сделать это с помощью локального макроса, выход которого {j^V}k$hSb.

map <C-T> {j\<C-V>}k$hSb, где мне было сказано, что IRC использовать \<C-V> для обозначения блочного визуального сегмента не работает. Я пробовал множество других решений, пока не добился успеха.

+0

Ваш '{j ...' не будет работать, если абзац расположен в начале вашего буфера. – Kent

ответ

1
:map <C-T> {j<C-V>}k$hSb 

работает для меня.

1

Я не буду использовать {j или }k. Это может иметь проблемы, когда абзац находится в начале/конце вашего буфера. Существует текстовый объект p, который мы можем использовать. И нам не нужен плагин surround.

nnoremap <F7> vip:s/^/(/\|'<,'>s/$/)/<CR> 

 Смежные вопросы

  • Нет связанных вопросов^_^