当前位置: 首页 > Linux

linux的vi和vim命令

时间:2023-04-06 20:10:12 Linux

vim是vi的扩展。文中很多操作都是vi。普通的vi是区分大小写的命令,也就是说g和G是不同的命令。在不同的模式下,快捷键有不同的模式:普通模式、编辑模式、命令模式,普通模式用于文件内部操作,编辑模式用于输入写入等,命令模式用于操作文本文件。回车键效果a,i,r,o,A,I,R,O进入编辑模式h,退格键左移l,空格键右移j下移k上移0,移动到行首$移动到行尾,1$表示当前行的结尾,2$表示当前行下一行的结尾b根据单词向前移动前缀e根据单词向后移动结尾w根据单词向后移动到下一个前缀H移动到屏幕顶部非空白词M移动到屏幕中央非空白词L移动到屏幕底部非空白词G移动到最后一行文档gg移动到文档第一行v进入光标模式,移动键选中多行Ctrl+f向下翻页Ctrl+b向上翻页u撤消上次操作\``返回上次编辑positiondw删除该词后面的内容dd删除光标所在行dG删除光标后的所有文字d$删除该行光标后的内容d0删除该行光标前的内容ycopythe当前行,会复制换行符yy复制当前行的内容yyp复制当前行到下一行,这个副本不会放到剪贴板nyy复制当前起始第n行p,P,Pasteddp当前行和下一行交换位置J合并行Ctrl+r重复上一个动作Ctrl+z暂停退出ZZ保存离开xp把swap后面的字符调到前面~改变当前光标位置的大小写,Move光标向行右移一位,直到光标不能移动详细操作按键作用Ctrl+e向下滚动Ctrl+b向上翻页b根据单词的前缀向前移动B根据单词的前缀向前移动忽略一些标点符号e按字向后移动E按字向后移动忽略一些标点符号w按字向后移动到下一个声母W按字向后移动到下一个声母忽略一些标点符号H移动到屏幕顶部Non-blankWordM移动到屏幕中央,非空字L移动到屏幕底部,非空字G移动到文档的最后一行gg移动到文档的第一行(光标到末尾thesentence)cursortobeginning{cursortothebeginningoftheparagraph}cursortotheparagraphEndingnG光标向下移动到n行的第一个位置n$光标移动到n行的末尾n+光标向下移动n行n-光标向上移动n行搜索命令指令作用*向下查找相同的光标字符\#向上查找相同的光标字符字符/代码查找co和de一样的内容,向后?code找和code一样的内容,向前n找下一个N找前面的ma,在光标处做一个记号a,一共有26个记号(a~z)\`a移动到一个标记ad\`a删除当前位置和标记a之间的内容:marks查看所有mark命令模式命令效果:qgeneral退出:q\!不保存退出:wqsave退出:wfilenamesaveasfilename:jumps历史编辑文档记录:setnu设置行号显示:setnonu取消行号显示:setdisplay设置参数:setautoindent自动缩进,回车与第一个非空格字符:根据程序语法高亮打开/关闭语法显示:设置高亮高亮设置视图:设置hlsearch搜索代码高亮:nohlsearch暂时关闭高亮:设置nohlsearch永久关闭高亮:setbg=dark设置暗色调:setbg=lightsetbrighttonescreenrollbutton效果Ctrl+f翻一屏到文件末尾Ctrl+b翻一屏到文件开头Ctrl+d翻半屏到文件末尾fileCtrl+u翻半屏到第一个文件Insertcommandkeyeffecti在光标前I在当前行行首a在光标后面A在当前行行尾o开新行在当前行下O在当前行上方新开一行r替换当前字符R替换当前行和后面的字符直到按escs从当前行开始回车用文本替换指定数量的字符S删除指定行数,并替换输入文本ncw,nCW修改指定n个字符nCC修改指定n行数删除命令键作用ndw,nDW删除光标开头及后n-1个字符dw删除单词后的内容dd删除光标当前行dG删除光标后的所有文本d$删除该行光标后的内容d0删除该行光标前的内容ndd删除当前行而后面的n-1行x删除一个字符,光标后的X删除一个字符,光标前的Ctrl+u删除在输入法多窗口模式下输入的文字指令作用:split新建一个窗口Ctrl+w切换windowCtrl-w=sameforallwindowsHighCtrl-w+方向键多窗口视图切换多文件编辑命令作用:args列出当前编辑的文件名:next打开多个文件,使用n(Next)p(revious)N(ext)开关:文件列出当前所有打开的文件vim自定义技巧复制粘贴取消缩进:设置粘贴进入粘贴模式后,您可以在插入模式下粘贴内容而不会产生任何变形。这个参数做了很多事情:textwidth设置为0wrapmargin设置为0setnoaisetnosisofttabstop设置为0更改,但它被禁用lispindentexprcindent绑定快捷键以激活/取消粘贴模式:setpastetoggle=粘贴换行符放错了,set.vimrc"thiscanchangewayofpastewords:setpaste"defaulttabstop=8:settabstop=4"使用键盘F11改变粘贴模式:setpastetoggle=在VimindentNormalMode下,命令>>将增加当前行的缩进,命令<<将减少当前行的缩进在命令前使用数字指定命令的范围。5<<在插入/替换模式下,Ctrl-Shift-t可以增加当前行的缩进Ctrl-Shift-d可以减少当前行的缩进使用0-Ctrl-Shift-d命令,会去掉所有的缩进需要注意的是,当我们在命令,Vim会认为我们要在文本中插入一个0,并在屏幕上显示输入的“0”;那么当我们执行命令0-Ctrl-Shift-d时,Vim会意识到我们要做的是减少缩进,那么0就会从屏幕上消失vimtabindenttabindentwidthdefaultsto8我们可以使用如下修改缩进宽度的命令:settabstop=4:setsofttabstop=4:setshiftwidth=4:setexpandtabtabstop:表示一个tab的长度,显示空格数默认8softtabstop:表示在编辑模式下当按下退格键时,后缩进的长度在使用expandtab时特别有用shiftwidth:表示每一级缩进的长度,一般设置为和softtabstop一样。设置为expandtab时,缩进用空格表示,noexpandtab用tabs表示。expandtab选项用来控制是否将Tabs转换成空格,但是这个选项不会改变已有的文本,如果需要应用这个设置将所有的tabs转换成空格。需要执行:retab!vimauto-indentcindent:setcindentvim可以识别C、Java等结构化编程语言,可以使用C语言的缩进格式来处理程序的缩进结构smartindent:setsmartindent这种缩进方式,每行与上一行的缩进量相同,这种缩进形式可以正确识别花括号,遇到右花括号(})时,取消缩进。此外,还增加了识别C语言关键字的能力。如果一行以#开头,那么这种格式将被特殊处理,并且不会使用缩进。autoindent:setautoindent这种缩进形式,新加入的行和上一行使用相同的缩进形式来显示隐藏的符号。默认不显示:setnolist显示:setinvlist"normalis:setnolist|showhideis:setinvlist:setnolist使用vimregister使用vimregister"+p粘贴不需要考虑是自动缩进还是不是,不管是paste模式,直接把原文传进去如果想把原来register里的内容保存下来,同时增加新的内容,必须在yy前加一个标签,标签以双引号开头,后面跟着标签名称,可以是0-9的数字,也可以是26个字母显示所有寄存器内容:reg注意两个特殊寄存器:*和+这两个寄存器与系统相连,前者与系统选择缓冲区相关,而后者与系统剪贴板相关联。通过它们,可以与其他程序进行数据交换。如果寄存器列表中没有*或+寄存器,可能是因为缺少vim图形界面。sudoapt-getinstallvim-gnome设置vim总是显示行号修改vim的配置文件addsetnuvi~/.vimrc然后输入setnu当然你也可以输入其他配置比如setnonusyntaxonvimrccommonconfigurationsetlinenumbersetnusetautoindentsetautoindentsetTab占用n个字符settabstop=n设置空格而不是tabs(因为有些场合不允许使用tabs)setexpandtab设置缩进字符数为nsetshiftwidth=n设置自动语法高亮语法原文链接:https://rumenz.com/rumenbiji/...微信公众号:入门