将Vim中的按键映射为切换行号的功能

21

我加了:

set number
nnoremap <F2> :set nonumber!

我想让你帮我修改我的vimrc文件。基本上它应该能让我按下F2键来开关显示行号,但是它不起作用。我做错了什么?

5个回答

39
在你的.vimrc文件中添加以下内容:
set number
nnoremap <F2> :set nonumber!<CR>

按下F2将切换行号。


1
这对我来说完美地运作,但是我只是好奇nonumber!会如何实现切换功能? - Wei Lin
如果您同时使用行号和相对行号,请在最新版本的vim中添加:set nonumber! norelativenumber!命令。 - mtk

25

这是我使用的代码(使用了不同的按键绑定):

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

"number!" 切换设置,"number?" 报告状态。


这应该被标记为正确答案,因为它更完整!这是Neovim的lua版本 vim.api.nvim_set_keymap("n", "<C-s>", ":set scrollbind! scrollbind?<CR>", { noremap = true, silent = true }) - Joannes

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

在新版本的vim中,你可以同时设置相对行号和常规行号:

```vim :set number relativenumber ```
set nu rnu

enter image description here


2
谢谢这个,它非常适用于任何类型的切换,不仅限于数字切换。 - Hassek
1
新的单向。 - SergioAraujo

5
这是一种方法:
map <silent> <F2> :if &number <Bar>
    \set nonumber <Bar>
        \else <Bar>
    \set number <Bar>
        \endif<cr>

这是一个不错的选项,因为我通常还会在那里放置折叠列。

这是另一个:

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

(直接方法)

我刚刚使用了你分享给我们的第二种方法。这是我喜欢的方法,谢谢 :) - lucapette
1
第二种方法比其他任何方法(到目前为止)都更正确和容易。它应该是一个单独的并且被接受的答案。 - Alois Mahdal

2
我使用此功能在相对行号(与当前绝对行号一起)和无行号之间进行切换。
nnoremap <silent> <leader>l :set relativenumber! <bar> set nu!<CR>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接