Что означает «<Bar>»?

23

Отвечая на вопрос только что , я упомянул об использовании сопоставления клавиш в обычном режиме, которое можно найти на vim.wikia.com. В процессе объяснения сопоставления клавиш я понял, что понятия не имею, что это <Bar>значит. Что это означает?

Я попытался заменить его на канал |, с пробелами и без них до, вокруг и после него, но каждый из них сломал мой .vimrcфайл со следующим сообщением об ошибке:

Error detected while processing /home/bottomsc/.vimrc:
line  173:
E488: Trailing characters: :nohl<CR>
Кристофер Боттомс
источник

Ответы:

33

Это код для символа трубы : |. Канал используется так же, как точка с запятой в языках стиля C, в качестве разделителя операторов. Вы не можете использовать его непосредственно в отображении, так как это будет рассматриваться как обозначение конца отображения. Следовательно, код должен использоваться вместо этого.

Есть исключения из этого, такие как определения autocmd, где полоса ограничивает действия autocmd, но не само определение.

От :help :bar:

'|' может использоваться для разделения команд, поэтому вы можете задать несколько команд в одной строке. Если вы хотите использовать '|' в аргументе, предшествуйте этому с '\'.

и из :help 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
Мур
источник
6

Если вы печатаете

:help <Bar>

вы прочтете это

<Bar>           vertical bar            |       124     <Bar>
Бернхард
источник
4

Я хотел бы добавить , что в обычном режиме, то |команда (которая должна быть замещена <bar>, \|или в ^V|то время как переотражения, как указана в других ответах) позволяет перейти к колонку конкретного экрана в текущей строке.

Например, при наборе текста 5|будет отображаться столбец 5 экрана, как показано на рисунке ниже.

введите описание изображения здесь

Вот что |значит по умолчанию в vim.

ha7ilm
источник