如何将VimroomToggle映射到多个动作

时间:2013-01-12 06:06:09

标签: vim vim-plugin

我用vim,markdown格式写博客文章。我想为vim使用很棒的“Vimroom”插件。但该插件并没有做几件事:

  1. 不会取消行号
  2. 它没有取消设置colorcolumn
  3. 如果我写博客文章,我希望它能做到这一点。

    目前我必须这样做:

    :VimroomToggle
    :set nonumber
    :set cc=''
    

    我不能使用:setlocal,因为它(Vimroom)生成几个缓冲区用于在屏幕中间显示写缓冲区,而这些其他缓冲区也有行号。

    我不是一个高级的vimscript作家,所以请你帮我解释一下你在那里做什么?

2 个答案:

答案 0 :(得分:1)

您不需要为此编写脚本。将此行添加到~/.vimrc应该可以解决问题。

nnoremap <leader>v :VimroomToggle \| set nonumber cc=''<cr>

现在,当您想撰写博客文章时,您只需点击<leader>v即可。有关:h mapleader的详细信息,请阅读<leader>。当然,你可以设计自己的捷径。

如果您希望所有您的降价文件没有numbercolorcolumn,您可以将此行添加到~/.vimrc

autocmd FileType markdown :setlocal nonumber cc=''

答案 1 :(得分:0)

对于setlocalset

numbercc不同。那是因为它们是窗口变量。如果切换到另一个缓冲区,则ccnumber设置保持不变。此外,如果您打开了2个窗口,则设置ccnumber只会更改其中一个。

你可以做的是使用windo命令,例如:

nnoremap <F2> :windo :set nonu cc=""<cr>
nnoremap <F3> :windo :set nu cc=+1<cr>

将更改所有窗口的nucc。我不建议使用自动命令,因为如果你切换到同一个窗口中的另一个缓冲区,它将具有相同的设置。