VIM ctrl+;要更改的选项卡选项卡将光标向后移动

VIM ctrl+;要更改的选项卡选项卡将光标向后移动,vim,tabs,Vim,Tabs,我在论坛上发现了这段代码,它让我在标签之间切换时的生活更轻松,我把它放在了我的~/.vimrc中。幸运的是,它工作得很好。不幸的是,每当我按ctrl+tab键更改tab键时,光标都会向后移动一个字符。有人能帮我把光标放在一个地方吗 set showtabline=2 :nmap <C-S-tab> :tabprevious<cr> :nmap <C-tab> :tabnext<cr> :nmap <C-t> :tabnew<cr&

我在论坛上发现了这段代码,它让我在标签之间切换时的生活更轻松,我把它放在了我的~/.vimrc中。幸运的是,它工作得很好。不幸的是,每当我按ctrl+tab键更改tab键时,光标都会向后移动一个字符。有人能帮我把光标放在一个地方吗

set showtabline=2
:nmap <C-S-tab> :tabprevious<cr>
:nmap <C-tab> :tabnext<cr>
:nmap <C-t> :tabnew<cr>
:map <C-t> :tabnew<cr>
:map <C-S-tab> :tabprevious<cr>
:map <C-tab> :tabnext<cr>
:map <C-w> :tabclose<cr>
:imap <C-S-tab> <ESC>:tabprevious<cr>i
:imap <C-tab> <ESC>:tabnext<cr>i
:imap <C-t> <ESC>:tabnew<cr>
set showtableline=2
:nmap:tabprevious
:nmap:tabnext
:nmap:tabnew
:map:tabnew
:map:tabprevious
:map:tabnext
:map:tabclose
:imap:tabpreviousi
:imap:tabnexti
:imap:tabnew

光标向后移动一个字符,因为
i
就是这样工作的。从技术上讲,你可以改变

:imap <C-tab> <ESC>:tabnext<cr>i
  • 你并不真的需要那些
    :map
    ,因为你已经有了
    nmap
    (和
    imap
    ,但它应该消失)

  • 在插入模式(缩进当前行)和正常模式(返回标记堆栈)中都非常有用。你不应该那样覆盖它

  • 可能无法在终端中工作

  • 选项卡未设计为文件的1对1代理,因此不应如此使用。您应该使用缓冲区


  • 罗梅因所说的一切都是很好的建议,特别是标签不应该像其他编辑器那样作为文件的一对一代理。学会使用缓冲区,你的生活就会更轻松。它们非常简单:您真正需要的是
    :set hidden
    :ls
    :bn
    :bp
    ,可能是一些像您为选项卡设置的映射,以及一些Vim帮助

    也就是说,Romaill的映射将在一行的末尾失败。一个更好的解决方案是使用
    ,它可以为一个命令暂时退出插入模式,并考虑诸如行尾行为之类的内容。您可以使用:

    :imap:tabnext

    那么选项卡是用来做什么的呢?:)我已经使用vim很多年了,总是发现缓冲区很麻烦,但是有几个拆分的标签工作得很好
    :imap <C-tab> <ESC>:tabnext<cr>li
    
    map <C-t> :tabnew<cr>