我已经开始使用Vim来开发Perl脚本,并开始发现它非常强大。
我喜欢的一件事是能够同时打开多个文件:
vi main.pl maintenance.pl
然后在他们之间跳来跳去
:n
:prev
然后查看哪个文件是打开的:
:args
要添加一个文件,我可以说:
:n test.pl
我希望它会被添加到我的文件列表中,但相反,它会清除我当前的文件列表,当我输入:args时,我只有test.pl打开。
那么我如何在我的args列表中添加和删除文件?
我已经开始使用Vim来开发Perl脚本,并开始发现它非常强大。
我喜欢的一件事是能够同时打开多个文件:
vi main.pl maintenance.pl
然后在他们之间跳来跳去
:n
:prev
然后查看哪个文件是打开的:
:args
要添加一个文件,我可以说:
:n test.pl
我希望它会被添加到我的文件列表中,但相反,它会清除我当前的文件列表,当我输入:args时,我只有test.pl打开。
那么我如何在我的args列表中添加和删除文件?
当前回答
有一个尝试以下地图方便编辑多个文件
“分割窗口”
nmap <leader>sh:leftabove vnew<CR>
nmap <leader>sl: vnew<CR>
nmap <leader>sk:leftabove new<CR>
nmap <leader>sj:rightbelow new<CR>
“四处走动
nmap <C-j> <C-w>j
nmap <C-k> <C-w>k
nmap <C-l> <C-w>l
nmap <C-h> <C-w>h
其他回答
这里有很多答案!我不用重新发明轮子——最著名的插件(不会很快消亡,被很多人使用)是超快和极客的。
ctrlpvim / ctrlp。Vim -查找文件的名称模糊搜索的位置或只是它的名称 jlanzarotta/bufexplorer -用来浏览打开的缓冲区(当你不记得最近打开和修改了多少文件,也不记得它们在哪里时,可能是因为你用Ag搜索了它们) rk / ag)。Vim搜索关于gitignore的文件 Scrooloose /nerdtree查看目录结构,查找,添加/删除/修改文件
编辑:最近我一直在使用dyng/ctrlsf。vim搜索上下文视图(像Sublime搜索),我把引擎从ag切换到ripgrep。演出非常出色。
EDIT2:与CtrlSF一起,您可以使用mg979/vim-visual-multi,一次更改多个文件,然后在最后一次保存它们。
我认为您在查看已打开的文件列表时可能使用了错误的命令。
尝试执行一个:ls来查看你已经打开的文件列表,你会看到:
1 %a "./checkin.pl" line 1
2 # "./grabakamailogs.pl" line 1
3 "./grabwmlogs.pl" line 0
etc.
然后,您可以通过引用列出的数字来浏览文件,例如: b: 3
或者你可以通过输入数字,但使用sb而不是b来分割屏幕。
作为旁白,%表示当前可见的文件,#表示备用文件。
您可以通过按Ctrl Shift 6在这两个文件之间轻松切换
编辑:像:ls,你可以使用:reg来查看你的寄存器的当前内容,包括0-9寄存器,其中包含你已经删除的内容。如果您想重新使用以前删除的文本,这尤其有用。
To open 2 or more files with vim type: vim -p file1 file2 After that command to go threw that files you can use CTRL+Shift+↑ or ↓ , it will change your files in vim. If u want to add one more file vim and work on it use: :tabnew file3 Also u can use which will not create a new tab and will open file on screen slicing your screen: :new file3 If u want to use a plugin that will help u work with directories and files i suggest u NERDTree. To download it u need to have vim-plug so to download other plugins also NERDTree to type this commands in your ~/.vimrc.
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim'
if empty(glob(data_dir . '/autoload/plug.vim'))
silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
call plug#begin('~/.vim/plugged')
Plug 'scrooloose/nerdtree'
call plug#end()
然后通过命令:wq保存.vimrc,返回并输入::PlugInstall
之后,插件将被安装,你可以使用你的NERDTree与其他插件。
有一个尝试以下地图方便编辑多个文件
“分割窗口”
nmap <leader>sh:leftabove vnew<CR>
nmap <leader>sl: vnew<CR>
nmap <leader>sk:leftabove new<CR>
nmap <leader>sj:rightbelow new<CR>
“四处走动
nmap <C-j> <C-w>j
nmap <C-k> <C-w>k
nmap <C-l> <C-w>l
nmap <C-h> <C-w>h
清单
要查看当前缓冲区的列表,我使用:
:ls
开放
要打开一个新文件,我使用
:e ../myFile.pl
增强的TAB补全功能(将set wildmenu放在你的.vimrc中)。
注意:你也可以使用:find,它会为你搜索一组路径,但是你需要先自定义这些路径。
切换
要在所有打开的文件之间切换,我使用
:b myfile
增强选项卡完成(仍然设置野生菜单)。
注意::b#选择最后访问的文件,因此您可以使用它在两个文件之间快速切换。
使用windows
Ctrl-W s和Ctrl-W v水平和垂直分割当前窗口。你也可以使用:split和:vertical split (:sp和:vs)
Ctrl-W w在打开的窗口之间切换,Ctrl-W h(或j或k或l)在打开的窗口中导航。
按Ctrl-W c关闭当前窗口,按Ctrl-W o关闭除当前窗口外的所有窗口。
使用-o或-o标志启动vim将打开每个文件各自的分割。
有了所有这些,我不需要在Vim中使用标签,我的手指可以找到缓冲区,而不是眼睛。
注意:如果您希望所有文件都转到同一个Vim实例,请使用——remote-silent选项启动Vim。