2014-07-12 4 views
6

(я задал тот же вопрос о суперпользователя, но понял, что это была не соответствующая страница для этого вопроса)Встроенные комментарии в vimrc отображений

Я очистки мой .vimrc конфиг и заметил, что в разделе с отображениями чрезмерно разрежены из-за некоторых сопоставлений с комментариями (для ремонтопригодности и будущей ссылки).

Проблема в том, что вы не можете добавить комментарий к той же строке, что и сопоставление, потому что оно будет интерпретироваться как продолжение правой части.

Пример текущего состояния (редком): (! Неверном)

" Do foo 
nmap <Leader>f :foo<Return> 

" Do bar 
nmap <Leader>b :bar<Return> 

желательного состояния:

nmap <Leader>f :foo<Return> " Do foo 
nmap <Leader>b :bar<Return> " Do bar 

Есть хороший способ, содержащий комментарий в той же строке, что и отображение?

ответ

27

Вы можете использовать этот метод, но убедитесь, что не включают в себя пространство, прежде чем |, потому что это будет часть отображения:

nmap <Leader>f :foo<Return>| " Do foo 
nmap <Leader>b :bar<Return>| " Do bar 

| разделяет команды в Vim, таким образом линии выше работает следующим образом:

nmap <Leader>f :foo<Return> 
" Do foo 
nmap <Leader>b :bar<Return> 
" Do bar 

Если вы хотите использовать | символ в самом отображении, тогда смотрите помощь map_bar для получения дополнительной информации:

             *map_bar* 
Since the '|' character is used to separate a map command from the next 
command, you will have to do something special to include a '|' in {rhs}. 
There are three methods: 
    use  works when     example  ~ 
    <Bar>  '<' is not in 'cpoptions'  :map _l :!ls <Bar> more^M 
    \|  'b' is not in 'cpoptions'  :map _l :!ls \| more^M 
    ^V|  always, in Vim and Vi   :map _l :!ls ^V| more^M 

(here ^V stands for CTRL-V; to get one CTRL-V you have to type it twice; you 
cannot use the <> notation "<C-V>" here). 

All three work when you use the default setting for 'cpoptions'. 

When 'b' is present in 'cpoptions', "\|" will be recognized as a mapping 
ending in a '\' and then another command. This is Vi compatible, but 
illogical when compared to other commands. 
+6

Ничего себе, какой умный и ужасный хак. – romainl

+0

Я лично ожидал бы комментариев, объясняющих, почему это работает потому что быстрый взгляд скажет мне, что отображение неверно. Но добавление пояснительного комментария вызывает поражение цели. – FDinoff

5

Нет, это невозможно.

От :help map-comments:.

Это не возможно поставить комментарий после этих команд, потому что «"» символ считается частью {LHS} или {шк}

+0

Просто попробовал это на 8.0-433 и он работает прекрасно: комментарий показывает в файле .vimrc и команда работает, как ожидалось (по крайней мере, на мой простой тест: 'noremap Tt: эхо«сообщение»| «comment comment». К сожалению, комментарий не отображается в листе ': map', который мне бы понравился. – JESii

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