当前位置: 首页 > 科技观察

VIM编辑器操作指南

时间:2023-03-12 08:35:41 科技观察

Vim是众所周知的类似于Vi的强大且高度可定制的文本编辑器。它在Vi的基础上进行了改进和增加了许多功能。VIM是免费软件。Vim通常被誉为类Vi编辑器中最好的,事实上真正的竞争对手来自Emacs的不同变体。1999年,Emacs被选为Linuxworld文本编辑类别的冠军,Vim位居第二。但在2000年2月,Vim获得了SlashdotBeanie的最佳开源文本编辑器奖,将Emacs推到了二线。总的来说,Vim和Emacs在文本编辑方面都非常出色。vim[argument][file..]编辑指定文件或:vim[argument]-从标准输入读取文本或:vim[argument]-ttag编辑定义标签的文件或:vim[argument]-q[errorfile]EditfirsterrorfileParameters:--onlyfilenameafterthis-vVimode(sameas"vi")-eExmode(sameas"ex")-EImprovedExmode-sQuiet(batch)mode(onlyworkswith"ex")-d差异模式(与"vimdiff"相同)-y简单模式(与"evim"相同,无模式)-R只读模式(与"view"相同)-Z受限模式(与"rvim"相同)")-m不可修改(写入文件)-M文本不可修改-b二进制模式-lLisp模式-C传统Vi兼容:'兼容'-N与传统Vi不完全兼容:'不兼容'-V[N][fname]详细[levelN][logmessagestofname]-Ddebugmode-n不使用交换文件,仅内存-r列出交换文件并退出-r(后跟文件名)恢复崩溃的会话-Lsame-r-A以阿拉伯语模式启动-H以希伯来语模式启动-F以波斯语模式启动-T将终端类型设置为--not-a-term跳过警告输入/输出不是终端-u使用而不是任何.vimrc--noplugin不加载插件脚本-P[N]打开N个选项卡(默认:每个文件一个)-o[N]打开N个窗口(默认:eachfilea)-O[N]同-o但垂直分割+启动后跳转到文件末尾+启动后跳转到行--cmd在加载任何vimrc文件之前执行-c在加载第一个文件之后执行-Sloadfirst在一个文件之后执行文件-s从文件中读取普通模式命令-w将所有输入的命令附加到文件-W将所有输入的命令写入文件-x编辑加密文件--startuptime将启动计时消息写入-i替换.viminfo-h或--help打印帮助(此信息)并退出--version打印版本信息并退出编辑器模式:Vi具有三种基本工作模式:commandlineModeAtany此时,无论用户处于何种模式,只需按下ESC键即可使Vi进入命令模式;我们在shell环境下输入启动Vi的命令(提示符是$),进入编辑器的时候也是在这个模式下,在这个模式下用户可以输入各种合法的Vi命令来管理自己的文档。此时,从键盘输入的任何字符都被解释为编辑命令。如果输入的字符是合法的Vi命令,Vi接受用户命令后将完成相应的动作。但需要注意的是,输入的命令不会显示在屏幕上。如果输入的字符不是Vi的有效命令,Vi将发出警报。文本输入模式在命令模式下,输入插入命令i、追加命令a、打开命令o、修改命令c、替换命令r或替换命令s,进入文本输入模式。在这种模式下,用户输入的任何字符都被Vi保存为文件的内容并显示在屏幕上。在文本输入过程中,如果要返回命令模式,按ESC即可。末行模式末行模式也称为ex转义模式。在命令模式下,用户可以按“:”键进入末行模式。这时,Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示。等待用户输入命令。大多数文件管理命令都是在这种模式下执行的(比如将编辑缓冲区的内容写入文件等)。执行完最后一个命令后,Vi自动返回到命令模式。例如::spnewfile分割一个窗口来编辑newfile。如果你想从命令模式切换到编辑模式,你可以输入命令a或i;如果您需要从文本模式返回,只需按Esc键。在命令模式下输入“:”切换到末行模式,然后输入命令。进入插入模式:i:在光标前插入一个字符I:插入行首a:在光标后插入一个字符A:插入行尾o:向下开新行,插入行首O:向上开新行,插入行首进入命令模式:ESC:从插入模式或末行模式进入命令模式移动光标:h:左移j:下移k:上移l:移动rightM:将光标移动到中间行L:将光标移动到屏幕最后一行FirstG:移动到指定行,行号-Gw:一次向后移动一个单词b:向前移动一个单词atime{:逐段移动,上移}:逐段移动,下移Ctr-d:向下滚动半屏Ctr-u:向上翻半屏Ctr-f:向下翻一屏Ctr-b:向上翻一屏gg:将光标移至文件开头G:将光标移至文件末尾删除命令:x:删除光标后一个字符,相当于DelX:删除一个字符er光标前,相当于Backspacedd:删除光标所在行,ndd删除指定行数D:删除光标后行的所有内容,包括光标所在字符d0:删除光标前一行的所有内容,不包括光标所在的字符dw:删除光标起始位置的单词,包括光标所在的字符>:将文本行向右移动<<:将文本行向左移动复制粘贴:yy:复制当前行,nyy复制n行p:在光标位置向下新建一行,粘贴可视化:v:按字符移动,选中文本V:逐行移动,选中文本的可视化方式可以配合d、y、>>、<<实现文本块的删除、复制、左右移动和替换:r:替换当前字符R:替换当前字符光标后的当前行字符查找命令:/:strsearchhn:nextN:previousreplacementcommand:replaceallabcwith123lastlinemode,replaceallabccurrentfileinthecurrentfilewith123:%s/abc/123/glastlinemode,替换第一行之间的abc到第10行123:1,在10s/abc/123/gvim中执行shell命令:enter!在最后一行模式下,然后是命令