我是VIM的新手。 看起来,为了使复制和粘贴功能在不同文件之间工作,必须在同一个VIM实例中打开文件。但是,执行此操作会将终端屏幕拆分为2.打开一个新文件,将其拆分为3等等。
如果我必须打开10个以上的文件,会发生什么?使用VIM的开发人员如何处理这个问题?
答案 0 :(得分:8)
您可以在同一个vim实例和同一窗口中打开文件(不拆分它)。这就是所谓的缓冲区。您看到的视图是当前缓冲区,但其他缓冲区仍然打开。
Here you have an introduction on how to work in vim with buffers.
或在vim中输入:help buffers
。
你可以使用一些插件来使用vim缓冲区更加用户友好。我建议您bufexplorer或minibufexpl。
你也可以use tabs,但我总是对缓冲更容易,但这只是我的情况。
答案 1 :(得分:4)
使用tabedit
代替split
打开更多文件。
答案 2 :(得分:3)
大多数用户仅在需要时同时使用两个文件的 查看 进行拆分。您可以在不同的缓冲区中打开任意数量的文件,同时只在屏幕上显示一个缓冲区。
:e File1.txt
:e File2.txt and so on ...
然后使用:bprevious
和:bnext
(以及其他各种命令)切换缓冲区。这真的是Vim的工作方式。
有许多用于操作和导航缓冲区的插件。
每个文件一个标签实际上是错误的方式......
答案 3 :(得分:3)
在标签中打开所有txt
个文件:
$ vim -p *.txt
使用 gt gT 在标签之间切换。
或者您可以将这些键映射放在.vimrc
:
nmap <C-H> gT
nmap <C-L> gt
nmap <leader>t :tabnew<CR>
答案 4 :(得分:1)
你会发现VIM是一个非常灵活和可定制的工具,所以可能有几种方法。就个人而言,我喜欢当时只打开一个缓冲区(我很少需要拆分)并使用Minibufexpl插件来跟踪打开的缓冲区数量,并在它们之间切换更有效。
答案 5 :(得分:1)
如果您唯一的要求是在文件之间复制粘贴。如果set clipboard=unnamed
,您可以在vim的不同实例之间执行此操作
这会导致vim使用系统剪贴板而不是它自己的内部缓冲区。所以你可以{Firefox从火狐<C-c>
然后p
进入vim,y
从一个vim p
进入另一个等等。
见http://vim.wikia.com/wiki/VimTip21
如果您希望在同一窗口中打开文件,我会使用其中一个其他答案并使用缓冲区(而不是拆分)或制表符。我个人经常在一个gvim窗口中打开10个或更多缓冲区,并使用2个拆分窗口查看我使用:bn
和:bp
之间切换的缓冲区。