Cosa significa "<Bar>"?


23

Nel rispondere a una domanda proprio ora , ho accennato usando una normale mappatura dei tasti in modalità che può essere trovata su vim.wikia.com. Nel mezzo della spiegazione della mappatura dei tasti, mi sono reso conto che non avevo idea di cosa <Bar>significasse. Cosa significa?

Ho provato a sostituirlo con una pipe |, con e senza spazi prima, intorno e dopo, ma ognuno ha rotto il mio .vimrcfile con il seguente messaggio di errore:

Error detected while processing /home/bottomsc/.vimrc:
line  173:
E488: Trailing characters: :nohl<CR>

Risposte:


33

E 'il codice per il carattere pipe : |. La pipe viene utilizzata come il punto e virgola viene utilizzato nei linguaggi di tipo C, come separatore di istruzioni. Non puoi usarlo direttamente in una mappatura, poiché sarebbe visto come la fine della mappatura. Pertanto, è necessario utilizzare il codice.

Ci sono eccezioni a questo, come le definizioni di autocmd, in cui la barra delimita le azioni di autocmd, ma non la definizione stessa.

Da :help :bar:

'|' può essere usato per separare i comandi, in modo da poter dare più comandi in una riga. Se vuoi usare '|' in un argomento, precedilo con '\'.

e da :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

Se digiti

:help <Bar>

lo leggerai

<Bar>           vertical bar            |       124     <Bar>

4

Vorrei aggiungere che in modalità normale, il |comando (che deve essere sostituito <bar>, \|o ^V|durante la rimappatura, come menzionato in altre risposte) ti consente di passare a una colonna dello schermo specifica nella riga corrente.

Ad esempio, digitando 5|andrai alla colonna 5 dello schermo, come nell'immagine qui sotto:

inserisci qui la descrizione dell'immagine

Ecco cosa |significa di default in vim.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.