2009-04-17 6 views
18

ich hinzugefügt:Vim: remap Taste, um Zeilennummerierung

set number 
nnoremap <F2> :set nonumber! 

meiner vimrc. Grundsätzlich, was es tun soll, lassen Sie mich F2 drücken, um Zeilennummerierung umzuschalten, aber es funktioniert nicht. Was habe ich falsch gemacht?

Antwort

33

In Ihrem .vimrc, fügen Sie diese:

set number 
nnoremap <F2> :set nonumber!<CR> 

Dann F2 drücken auf Linie drehen wird die Nummerierung, wenn er ausgeschaltet ist, und schalten Sie ihn aus, wenn er eingeschaltet ist.

+1

Das funktioniert perfekt für mich, aber nur neugierig wie würde 'nonumber!' Die Umschaltfunktion implementieren? –

+0

Mit dem letzten vim, add ': set nonumber! norelativeNummer! 'wenn Sie sowohl die Nummer als auch die relative Nummer verwenden. – mtk

23

Dies ist, was ich (mit einem anderen Schlüssel-Bindung) verwenden: "Nummer"

nmap <f2> :set number! number?<cr> 

Die schaltet die Einstellung und "Nummer?" meldet den Zustand.

5

Dies ist eine Methode:

map <silent> <F2> :if &number <Bar> 
    \set nonumber <Bar> 
     \else <Bar> 
    \set number <Bar> 
     \endif<cr> 

(dieses ist schön, weil ich in der Regel in auch dort setzen foldcolumn)

Dies ist ein weiterer:

map <silent> <F2> :set invnumber<cr> 

(direkte Methode)

+0

Ich habe gerade die zweite Methode verwendet, die Sie mit uns geteilt haben. Es ist die, die ich bevorzuge, danke :) – lucapette

+1

Die zweite Methode ist weit korrekter und einfacher als alles andere hier (bisher). Es sollte eine separate * und akzeptierte * Antwort sein. –

7
nmap <silent> <F11> :exec &nu==&rnu? "se nu!" : "se rnu!"<CR> 

In neuen vim Sie beide relative Anzahl und Anzahl auf einmal einstellen können, auf diese Weise:

set nu rnu 

enter image description here

+2

Danke dafür, eignet sich hervorragend für jede Art von Toggle, nicht nur zum Umschalten der Nummer. – Hassek

+0

die neue einbahnstraße 'nmap : exec & nu == & rnu? "se nu!" : "se rnu!" ' – SergioAraujo

0

ich diese zwischen relativenumber wechseln verwenden (mit aktueller Nummer absoluter Linie) und keine Zeilennummerierung

nnoremap <silent> <leader>l :set relativenumber! <bar> set nu!<CR> 
Verwandte Themen