Vim是一个非常好用的工具,很多人一开始使用Vim就无法自拔。然而,Vim仍然有其自身的缺陷。陡峭的学习曲线是缺点之一,在某些使用场景中的局限性也不容忽视。今天就为大家介绍两种解决使用痛点的方法。在任何地方使用Vim我将向您介绍Vim-anywhere,这是一个简单的脚本,允许您使用Vim编辑器在Linux中的任何地方输入文本。这意味着您可以简单地调出您最喜欢的Vim编辑器,输入您想要的任何内容,然后将该文本粘贴到任何应用程序或网站中。在您重新启动系统之前,这些文本将在剪贴板上可用。这个工具对那些喜欢在非Vim环境中使用Vim键绑定的人很有用。在Linux中安装Vim-anywhereVim-anywhere工具可以在任何基于GNOME(或其他派生的)Linux发行版上运行。另外,请确保安装了以下依赖项。CurlGitgVimxclip例如,您可以使用以下命令在Ubuntu中安装这些工具:$sudoaptinstallcurlgitvim-gnomexclip然后运行以下命令以安装Vim-anywhere:$curl-fsSLhttps://raw.github.com/cknadler/vim-anywhere/master/install|bashVim-anywhere到目前为止已经安装好了。现在让我们看看如何使用它。使用Vim编辑器在任何地方输入文本假设您需要创建一个word文档。但是您宁愿使用Vim编辑器也不愿使用LibreOffice。没问题,这里Vim-anywhere就派上用场了。Vim-anywhere使整个过程自动化。它只是调用Vim编辑器,因此您可以编写任何您想要的内容并将其粘贴到.doc文件中。让我给你看一个用例。打开LibreOffice或您选择的任何图形文本编辑器。然后打开Vim-anywhere。您只需按CTRL+ALT+V。它将打开gVim编辑器。按i切换到交互模式并输入文本。完成后,键入:wq关闭并保存文件。在您重新启动系统之前,这些文本将在剪贴板中可用。关闭编辑器后,您之前的应用程序将重新占据主界面。您只需按CTRL+P即可将文本粘贴进去。这只是一个示例。您甚至可以使用Vim-anywhere在烦人的Web表单或其他应用程序上键入。一旦调用Vim-anywhere,它就会打开一个缓冲区。关闭Vim-anywhere后,缓冲区中的内容会自动复制到你的剪贴板中,之前的应用程序会重新占用主界面。调用时,Vim-anywhere在/tmp/vim-anywhere中创建一个临时文件。这些临时文件将一直存在,直到您重新启动系统并为您提供临时历史记录。$ls/tmp/vim-anywhere您可以使用以下命令重新打开最近的文件:$vim$(ls/tmp/vim-anywhere|sort-r|head-n1)更新Vim-anywhere运行以下命令更新Vim-anywhere:$~/.vim-anywhere/update更改快捷键调用Vim-anywhere的默认键是CTRL+ALT+V。您可以使用gconf工具将其更改为任何自定义键绑定。$gconftool-tstr--set/desktop/gnome/keybindings/vim-anywhere/bindingUninstallVim-anywhere有些人可能认为每次打开Vim编辑器,输入一些文本,然后将文本复制到其他applications毫无意义和不必要的。如果您觉得这个工具没有用,只需使用以下命令将其卸载:$~/.vim-anywhere/uninstall同时修改多个文件有时,您可能需要将多个修改复制到另一个文件。从GUI中,您可以在任何图形文本编辑器(例如gedit)中打开文件,然后使用CTRL+C和CTRL+V复制和粘贴内容。您不能在命令行模式下使用此编辑器。不过不用担心,只要你有vim编辑器,就有办法。在本教程中,我们将学习使用vim编辑器同时编辑多个文件。相信我,这非常有趣。我们可以通过两种方式做到这一点。方法一有两个文件,file1.txt和file2.txt,带有一堆随机单词:$catfile1.txtostechnixopensourcetechnologylinuxunix$catfile2.txtline1line2line3line4line5现在,让我们同时编辑这两个文件。请运行:$vimfile1.txtfile2.txtVim会按顺序显示文件的内容。第一个文件的内容首先显示,然后是第二个文件,依此类推。-在文件中切换移动到下一个文件类型::n返回到前一个文件类型::N如果有任何未保存的更改,Vim将不允许你移动到下一个文件。要保存当前文件中的更改,请键入:ZZ注意两个大写字母ZZ(SHIFT+zz)。要放弃更改并移至上一个文件,请键入::N!要查看当前正在编辑的文件,请键入::buffers您将在底部看到已加载文件的列表。要切换到下一个文件,请输入:buffer后跟缓冲区编号。例如,要切换到第一个文件,键入::buffer1-打开其他文件进行编辑目前我们正在编辑两个文件,file1.txt和file2.txt。我想打开另一个名为file3.txt的文件进行编辑。你会怎么办?这很容易。只需键入:e后跟一个文件名,如下所示::efile3.txt现在您可以编辑file3.txt。要查看当前正在编辑的文件数量,请键入::buffers请注意,对于使用:e打开的文件,您不能使用:n或:N切换。要切换到另一个文件,请键入:buffer后跟文件缓冲区编号。-将一个文件的内容复制到另一个文件您已经知道如何同时打开和编辑多个文件。有时,您可能希望将一个文件的内容复制到另一个文件中。也可以做到。切换到你选择的文件,比如假设你想把file1.txt的内容复制到file2.txt中:首先,切换到file1.txt::buffer1将光标移动到你要复制的行的前面,并键入yy以拉出(复制)该行。然后,移动到file2.txt::buffer2将光标移动到要粘贴从file1.txt复制的行的位置,然后键入p。例如,如果要将复制的行粘贴到line2和line3之间,请将鼠标光标放在该行的前面并键入p。示例输出:line1line2ostechnixline3line4line5要保存在当前文件中所做的更改,请键入:ZZ同样,两个大写字母ZZ(SHIFT+z)。保存所有文件更改并退出vim编辑器,键入::wq同样,您可以将任何文件中的任何行复制到其他文件中。-将一个文件的全部内容复制到另一个文件中我们知道如何复制一行,但是如何复制整个文件的内容呢?这也很好。假设您想将file1.txt的全部内容复制到file2.txt中。首先打开file2.txt:$vimfile2.txt如果文件已经载入,你可以输入:buffer2切换到file2.txt,将光标移动到你想粘贴file1.txt内容的地方。我想把file1.txt的内容粘贴到file2.txt的第5行之后,所以我将光标移动到第5行。然后,键入以下命令并回车::rfile1.txt这里,r代表“读取”。您现在将看到file1.txt的内容粘贴在file2.txt的第5行之后。line1line2line3line4line5ostechnixopensourcetechnologylinuxunix要保存当前文件中的更改,键入:ZZ要保存所有文件中的所有更改并退出vim编辑器,键入::wq方法二另一种同时打开多个文件的方法是使用-o或-O符号.要在水平窗口中打开多个文件,请运行:$vim-ofile1.txtfile2.txt要在窗口之间切换,请按CTRL-ww(即按CTRL+w,然后再次按w)。或者,您可以使用以下快捷方式在窗口之间移动:CTRL-wk-上部窗口CTRL-wj-下部窗口要在垂直窗口中打开多个文件,请运行:$vim-Ofile1.txtfile2。txtfile3.txt要在窗口之间切换,请按CTRL-ww(即按CTRL+w,然后再次按w)。或者,使用以下快捷方式在窗口之间移动:CTRL-wl-左窗口CTRL-wh-右窗口其他一切都与方法一所述相同。例如,要列出当前加载的文件,运行::buffers要在文件之间切换::buffer1要打开其他文件,键入::efile3.txt要将一个文件的全部内容复制到另一个文件中::rfile1.txt唯一的区别with方法二是每当你使用ZZ保存对当前文件的更改时,该文件会自动关闭。然后你需要依次输入:wq来关闭文件。但是,如果您遵循方法一,当您键入:wq时,所有更改都将保存在所有文件中,并且所有文件将立即关闭。有关更多详细信息,请参见手册页。$manvim