Co oznacza „<Bar>”?

23

Odpowiadając teraz na pytanie , wspomniałem o użyciu mapowania klawiszy w trybie normalnym, które można znaleźć na stronie vim.wikia.com. W trakcie wyjaśniania mapowania kluczy zdałem sobie sprawę, że nie mam pojęcia, co to <Bar>znaczy. Co to znaczy?

Próbowałem zastąpić go potokiem |, ze spacjami i bez niego przed, wokół i po nim, ale każdy z nich zepsuł mój .vimrcplik z następującym komunikatem o błędzie:

Error detected while processing /home/bottomsc/.vimrc:
line  173:
E488: Trailing characters: :nohl<CR>
Christopher Bottoms
źródło

Odpowiedzi:

33

Jest to kod znaku rury : |. Potok jest używany w taki sam sposób, jak średnik jest używany w językach typu C, jako separator instrukcji. Nie można go użyć bezpośrednio w mapowaniu, ponieważ oznaczałoby to koniec mapowania. Dlatego zamiast tego należy użyć kodu.

Istnieją wyjątki, takie jak definicje autocmd, gdzie pasek ogranicza działania autocmd, ale nie samą definicję.

Od :help :bar:

„|” można użyć do oddzielenia poleceń, dzięki czemu można wydać wiele poleceń w jednym wierszu. Jeśli chcesz użyć „|” w argumencie poprzedź go „\”.

i od :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
muru
źródło
6

Jeśli wpiszesz

:help <Bar>

przeczytasz to

<Bar>           vertical bar            |       124     <Bar>
Bernhard
źródło
4

Chciałbym dodać, że w trybie normalnym |komenda (która ma być podstawiona <bar>, \|lub ^V|podczas manipulowanie go, jak wspomniano w innych odpowiedzi) pozwala przejść do ekranu w kolumnie specyficzne w bieżącej linii.

Na przykład pisanie 5|spowoduje przejście do kolumny ekranu 5, jak na poniższym obrazku:

wprowadź opis zdjęcia tutaj

To właśnie |oznacza domyślnie w vimie.

ha7ilm
źródło