改变退出和打开vi(vim)编辑器的做法?

Sen*_*ran 2 vim

vi(vim)和emacs之间的主要区别之一是emacs被设计并且应该在没有退出的情况下运行,在给定vim的快速加载时间的情况下,更容易退出并开始编辑任务.我读到它已成为这两个编辑用户之间的文化差异.

我倾向于认为保持编辑器始终在运行,有助于提高工作效率,因为您知道,某些事情正在进行中,您无需重新开始.你发现运行单个vim会话并从那里完成所有任务的最佳技巧和插件是什么?

例如,我编辑Python程序,然后退出运行appengine appcfg并返回.有时退出当前文件以打开另一个文件.我还没有习惯缓冲区和标签的概念,而是在我的屏幕会话中运行vim,如果我想编辑多个文件.

The*_*sey 7

所以你在每个屏幕会话中运行一个文件Vim?这听起来很糟糕.你真的不需要任何特殊的插件来轻松地在Vim中使用多个文件.做就是了

:e /home/project/myfile.py
Run Code Online (Sandbox Code Playgroud)

autochdir在我的设置中.vimrc自动将当前工作目录更改为当前活动的缓冲区.所以,一旦打开该文件,您就可以做到

:e myfile2.py
:e myfile3.py
Run Code Online (Sandbox Code Playgroud)

BTW打开Vim中的任何文件都可以通过选项卡完成来完成,所以请确保你这样做.一旦你打开一堆缓冲区,我就可以切换

:b myfile1.py
Run Code Online (Sandbox Code Playgroud)

您也可以使用标签完成功能,只需键入:b 1并按Tab键即可确定您想要myfile1.py打开,如果您能记住常规文件名,那么它会非常快速,如果有多个类似匹配,它会给您一个您可以通过标签列出的列表.为此,我还建议您查看wildmodewildmenu设置,看看您喜欢什么,他们会为您提供增强的标签完成菜单.如果您在任何时候开始迷失了打开的缓冲区以及您想要查看的内容,您可以这样做

:ls
Run Code Online (Sandbox Code Playgroud)

它会告诉你一切都是开放的.

还记得你可以通过在命令之前运行外部命令 !

:!ls
Run Code Online (Sandbox Code Playgroud)

例如.希望其中一些有助于或至少让您朝着正确的方向前进.


rom*_*inl 5

其他人说的一切加上三个:

  • 随着set hidden你来代替当前的打开一个新的缓冲区,即使它不保存.你可以打开这样的几十个缓冲区,不需要关闭Vim!请参阅:help windowsVim 维基.

  • 假设使用正确的标志(+clientserver)编译Vim,您可以将一个Vim作为"服务器"运行(在终端窗口A中)并打开该单个Vim中的所有文件(从终端窗口B).它分两步完成:

    1. $ vim --servername WHATEVER 启动Vim
    2. $ vim --remote file.js 打开一个文件

    您的文件在终端窗口A中的Vim中打开,您仍然在终端窗口B中显示您的提示.

  • 请勿触摸标签.它们被错误地命名,并且根本不像标签那样工作.