Come mostrare la colonna corrente nella barra di stato in vim?


188

Vorrei mostrare la colonna corrente nella barra di stato, come è comune in molti altri editor di testo. Ad esempio, è bene sapere se ci si trova intorno alla colonna 80 o superiore.

Come mostrare la colonna corrente nella barra di stato?


Se si desidera mostrare la colonna corrente del cursore, digitare: echo col ('.').
SibiCoder

Risposte:


219

Prova se l'impostazione dell'opzione "righello" è ciò che stai cercando. Sul mio computer in basso a destra mostra la riga e la colonna in cui ho il cursore.

:set ruler

MODIFICA AI COMMENTI :

Dall'aiuto di vim (comando :help ruler):

Se il numero di caratteri visualizzati è diverso dal numero di byte nel testo (ad es. Per una TAB o un carattere multi-byte), vengono visualizzate sia la colonna di testo (numero di byte) che la colonna dello schermo, separate da un trattino.

Puoi provare a cambiarlo con rulerformatun'opzione, ad esempio:set rulerformat=%l,%v


Sì, qualcosa del genere. Ma questo sta mostrando uno strano valore, ad esempio 23,62-68, 23 sembrano essere la linea. Come devo interpretare 62-68per la colonna?
Jonas,

7
62 sta contando le schede come un carattere, 68 sta contando le schede espanse
RedGrittyBrick il

1
Dal comando ': help ruler': "Se il numero di caratteri visualizzati è diverso dal numero di byte nel testo (ad es. Per una TAB o un carattere multi-byte), sia la colonna di testo (numero di byte) che lo schermo vengono visualizzate le colonne, separate da un trattino. " Puoi provare a cambiarlo con l'opzione 'rulerformat', come ': set rulerformat =% l,% v'
Birei

rulernon funziona con le finestre divise in Vim.
Mihai,

@Jonas Non solo schede, come diceva RedGrittyBrick, ma anche caratteri contro byte. Ciò è molto evidente nei file UTF-8 in cui un glifo a carattere singolo ha un punto di codice multi-byte. Ad esempio, l'eñe latino (n con sopra una tilde, pronunciata EN-yea) è un glifo a carattere singolo ma richiede due byte per rappresentare il punto di codice (\ xC3B1) e un terzo (1/3) è un glifo a carattere singolo con un punto di codice a tre byte (\ xE28593).
Luv2code

27

Vedi :help statuslineper le molte opzioni disponibili.

Ho questo nel mio ~/.vimrctra un mucchio di altre direttive:

set statusline+=col:\ %c,

quali uscite

col: 64

nel mio statusline.

Non ho set ruler.


1
Questo non funziona per me. Probabilmente ho bisogno di altre impostazioni.
Jonas,

3
Jonas, potrebbe essere necessario utilizzare il set laststatus=2in your .vimrcper visualizzare sempre la riga di stato. (0 -> non visualizza mai la riga di stato, 1 -> solo se sono presenti almeno due finestre, 2 -> visualizza sempre la riga di stato).
pabuisson,

Ho usato quanto segue per fornire spazio prima di questo e le cose precedenti sulla statusline: set statusline + = \ col: \% c,
David Baucum,

18

Un altro modo per farlo è fare 'g Ctrl-G', che stampa la posizione corrente del cursore in cinque modi: colonna, linea, parola, carattere e byte. (da http://vimdoc.sourceforge.net/htmldoc/editing.html#g_CTRL-G )


Questa soluzione ha qualcosa di pulito, che differenzia Column e VisibleColumn. I caratteri non stampabili sono visualizzati su 2 colonne, ma devono essere contati come uno. Se i caratteri non stampabili l'output è simile al seguente: RealColumn-VisibleColumn, Line, Word, Character and Byte.
mxlian,

17

In alternativa, lasciare 'righello' non impostato, un guadagno in termini di prestazioni e premere CTRL-G quando si desidera vedere la colonna corrente.


3
Colpire Ctrl-Anything non sembra un guadagno in termini di prestazioni. Stiamo digitando personaggi. Nessun essere umano ha le dita e gli occhi che volano abbastanza velocemente da vedere questo tipo di differenza di prestazioni.
macetw,

10

Vorrei deprezzare usando set righello perché credo che non sia compatibile con le opzioni di statusline, ad esempio se si imposta lo statusline per visualizzare il percorso file completo in combinazione con set ruler

set statusline+=%F

set ruler

Quindi NON visualizza il numero di colonna ma solo il percorso file completo nella barra di stato. Tuttavia, se inserisci quanto segue nel tuo .vimrc

set statusline+=%F\ %l\:%c

Visualizzerà tutto correttamente, vale a dire il

[Percorso file / nome file] [lino]: [numero colonna]


2

Per le altre persone che cercano questa risposta e non sono abituate a lavorare con VIm, personalmente la risposta più semplice che ho trovato è quella di aggiungere questa riga alla fine del tuo file .vimrc nella tua home directory:

set ruler

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.