【问题标题】:Vim, how to map two tasks under one shortcut key?Vim,如何在一个快捷键下映射两个任务?
【发布时间】:2010-12-08 12:06:19
【问题描述】:

我喜欢在 Vim 中打开行号,但有时行号很烦人。我在 .vimrc 中设置了快捷方式:

map <c-F12> :set nonumber<ENTER>
map <c-F11> :set number<ENTER>

用于关闭/打开它们。

是否可以一键连接两个任务(关闭/打开)?我的意思是,当行号打开时,快捷方式应该关闭它们并在行号关闭时打开。

【问题讨论】:

    标签: vim map keyboard-shortcuts line line-numbers


    【解决方案1】:

    从 Vim 帮助中,您可以使用以下语法:

    :se[t] {option}! or
    :se[t] inv{option} Toggle option: Invert value. {not in Vi}

    :help set-option

    在您的情况下,您可以使用: map &lt;c-F11&gt; :set number!&lt;ENTER&gt;

    【讨论】:

    • 嘿,谢谢!我将其更改为: nmap :set number!
    • 很好,你知道如何在我切换 {option} 时显示一些消息,以便我知道该选项是打开还是关闭
    【解决方案2】:

    如果您还想在相对行号、行号和无编号之间进行更改,您可以使用以下内容:

    let g:relativenumber = 0
    function! ToogleRelativeNumber()
      if g:relativenumber == 0
        let g:relativenumber = 1
        set norelativenumber
        set number
      elseif g:relativenumber == 1
        let g:relativenumber = 2
        set nonumber
        set relativenumber
      else
        let g:relativenumber = 0
        set nonumber
        set norelativenumber
      endif
    endfunction
    
    map <c-f11> :call ToogleRelativeNumber()<cr>
    

    【讨论】:

    • From Super User :)nmap &lt;c-f11&gt; :exec &amp;nu==&amp;rnu? "se nu!" : "se rnu!"&lt;CR&gt;
    • 更新:'number''relativenumber' 在 Vim 7.3.1115 中发生了变化。您可以在 superuser.com/a/604625 找到更新的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多