代码之家  ›  专栏  ›  技术社区  ›  Greg Reynolds

VIM最好的(Linux兼容)缓冲区/会话管理器是什么?

vim
  •  5
  • Greg Reynolds  · 技术社区  · 5 年前

    VIM是否有一个好的项目/会话经理?一 阶段 (或project)是文件的命名列表,例如“bitonic-sort”可以识别文件“~/a/bitonic-sort.sk”、“~/b/bitonic-sort.smt2”等。

    (理据) 我有一个项目,在那里我需要编辑来自许多不同位置的文件,而且每次我恢复工作时手动打开这些文件太麻烦了。(所以,看起来像是在这个姐妹问题上提到的Nerdtree, Favorite (G)Vim plugins/scripts? 不会工作的。我还需要针对不同项目的单独会话(即文件列表),而不仅仅是最近的文档列表。

    将所有文档加载为缓冲区后,对它们之间切换的任何增强都是一个加号(例如,开始键入名称,并显示匹配的文档)。事先谢谢。

    3 回复  |  直到 7 年前
        1
  •  8
  •   tungd    14 年前

    VIM具有内置会话管理器。要保存当前会话,请使用:

    :mks session1.vim
    

    这基本上创建了一个名为session1.vim的vim脚本,它将恢复您打开的文件,如果您对其进行源代码或者这样启动vim:

    vim -S session1.vim
    

    要覆盖保存的会话,请使用 :mks! your_saved_session.vim . 结合自定义键映射,这将是解决方案。有关VIM会话的更多信息,请阅读 :help :mks . VIM也有 意见 很相似的经理。更多阅读: :help :mkview

    对于在缓冲区之间切换,可以使用 FuzzyFinder ;但我更喜欢这个关键地图:

    nmap <C-tab> :bn<CR>
    imap <C-tab> <ESC>:bn<CR>i
    

    将其添加到 .vimrc 我可以使用ctrl+tab在缓冲区之间切换,就像firefox标签一样。希望这有帮助。

        2
  •  2
  •   John Kugelman    7 年前

    我不确定你到底要什么…但是,如果您想在VIM中打开文件时打开选项卡完成功能,请将其添加到 ~/.vimrc :

    " Auto-complete file names after <TAB> like bash does.
    set wildmode=longest,list
    set wildignore=.svn,CVS,*.swp
    

    另外,看看 screen . 从手册页:

    什么时候? 屏幕 调用时,它创建一个窗口,其中包含一个shell(或指定的命令),并且 然后让开,这样你就可以像平时那样使用程序了。然后,在任何时候, 你可以用其他程序(包括更多的shell)创建新的(全屏)窗口,杀死 现有窗口,查看窗口列表,打开和关闭输出日志记录,在 窗口,查看滚动历史记录,在窗口之间以任何方式切换,等等。 Windows完全独立运行它们的程序。程序继续运行时 窗口当前不可见,甚至当整个屏幕会话从用户的 终端。当程序终止时,屏幕(默认情况下)会终止包含它的窗口。如果 此窗口在前景中,显示切换到上一个窗口;如果没有留下任何窗口, 屏幕退出。

    这很像打开了几个Xterms,但与图形Xterms不同的是,如果您远程访问您的计算机(例如通过ssh访问它),则可以访问您的屏幕会话。您可以在单独的屏幕中留下几个不同的vim实例,其中包含您想要打开的所有文件,并且永远不会退出它们。

    我使用的最基本的设置是一个VIM窗口、一个编译窗口和一个测试/调试窗口。


    既然我们在谈论Vim,请看这篇文章: Post your Vim config. 里面有很多很酷的小改动和小东西。

        3
  •  0
  •   jaybay    7 年前

    您可以尝试VIM工作区插件,它的会话管理功能是自动化的,相对简单(与VIM会话相比): https://github.com/thaerkh/vim-workspace