网站每年费用,软文形式推广产品,望野于春,wordpress 503几句话很久之前就接触到vim#xff0c;初学那阵觉得vim很酷炫#xff0c;但确实对新手不是很友好。我也就简单看了下基本操作就上手了#xff0c;但又不是长期在vim下工作#xff0c;这就导致了每一次重新使用vim都要再去回温下基本操作#xff0c;很是难受#xff0c;所…几句话很久之前就接触到vim初学那阵觉得vim很酷炫但确实对新手不是很友好。我也就简单看了下基本操作就上手了但又不是长期在vim下工作这就导致了每一次重新使用vim都要再去回温下基本操作很是难受所以就趁这个机会把基本操作都记录下来一来可以当做自己的笔记二来希望可以帮到同样和我一样用过vim但却忘得差不多的人。另外这里也记录一下自己的vim配置这个配置可能并没有其他网友分享的那么强大但至少足够简单能够提高自己编码的效率。vim常用命令首先先简单梳理一下vim的工作模式。vim有三种模式分别是命令模式(Command mode)输入模式(Insert mode)和底线命令模式(Last line mode)。简单来讲就是当我们刚打开vim或者使用vim打开了一个文件终端上显示着文件的内容这时候就是命令模式(如上图就是刚打开一个文件的情况此时光标位于第一行行首处)在现在的情况下键盘输入小写的i a o 或者大写I A O中的其中一个就可以进入输入模式各个按键的具体意义如下按键具体意义i从目前光标所在处输入I在目前所在行的第一个非空格符处开始输入a从目前光标所在的下一个字符处开始输入A从光标所在行的最后一个字符处开始输入o在目前光标所在的下一行处输入新的一行O在目前光标所在的上一行处输入新的一行r继续输入一个字符以取代光标所在处后面单个字符而后返回命令模式R新输入的字符会一直取代光标所在处后面的字符当我们使用上述按键进入输入模式配合方向键编辑好文件内容后使用ESC键可退出输入模式回到命令模式vim的大部分命令都是在命令模式下使用。命令模式下的按键十分丰富主要的操作为光标移动、复制粘贴、搜索替换等光标移动的基本按键如下按键具体意义h 或 向左箭头键(←)光标向左移动一个字符j 或 向下箭头键(↓)光标向下移动一行k 或 向上箭头键(↑)光标向上移动一行l 或 向右箭头键(→)光标向右移动一个字符在上面的基础上如果你想光标的位置一次移动多行或者在同一行上移动多个字符可以有以下几种方法直接输入数字并在其后输入相应的方向例如输入20j或20↓表示光标向下移动20行输入20l或20→表示光标向右移动20个字符。输入数字后加空格可以使光标向右移动n个字符例如20[space]即和上面第一条的20l或20→达到相同的效果为了简单一点我个人认为如果不是vim深度用户的话我们可以直接放弃记忆这个命令。同样性质的命令还有20[enter],表示光标向下移动20行ctrlf/b/d/u可以用来上下翻页但是对大部分人来说没有必要去记这个繁琐的命令我个人更加推荐使用键盘上的Page Up和Page Down来上下翻页0和$可以用来移动光标到行首或行尾同样我还是认为没必要去记忆这个命令而是直接使用Home和End来达到同样的效果另外还有一些很方便的操作值得单独拎出来进一下按键(区分大小写)具体意义H(High)光标移动到这个屏幕的最上方那一行的第一个字符M(Middle)光标移动到这个屏幕的中央那一行的第一个字符L(Low)光标移动到这个屏幕的最下方那一行的第一个字符G移动到这个文件的最后一行(常用)gg移动到这个文件的第一行(常用)nG移动到这个文件的第n行复制粘贴的操作比较繁杂但也并不是没有规律可循具体如下按键具体意义x或[delete]删除光标后面的单个字符X或[backspace]删除光标前面的单个字符nx连续向后删除 n 个字符。同理可以有大写的nXdd删除光标所在的一整行ndd删除光标向下的n行(包括光标那一行)d某个位置删除光标处到那个位置的所有内容。例如d1G删除从光标到第一行的所有内容dG删除从光标到最后一行的所有内容d$或d[End]删除从光标处到行尾的所有字符。以此类推yy复制光标所在的那一行(常用)nyy复制光标向下的n行(包括光标那一行)y某个位置复制选取的范围选取范围如前面d某个位置所示p将已复制的内容在下一行粘贴P将已复制的内容在上一行粘贴J将光标所在行与下一行的数据结合成同一行即在删除该行和下一行之间的换行符。u复原前一个动作(常用)[ctrl]r重做上一个动作(常用).(小数点)重复前一个动作(常用)搜索替换部分为了简洁一点就只提一下搜索替换部分就不涉及了按键具体意义/[要搜索的字符]向光标之下寻找一个匹配的字符串。如/int会搜索匹配int?[要搜索的字符]向光标之上寻找一个匹配的字符串。在上面搜索字符串的基础上按回车键就可使光标跑到搜索到的字符串处这时输入n光标就会跳到下一个或上一个匹配的字符串处具体是上还是下取决于刚才执行的是/string还是?string而输入大写的N则是与小写n相反的方向。(注意当执行n到达文件底部时就会循环跳到顶部反之亦然)好了现在我们已经能够编辑文件内容了那怎样保存文件呢一般情况下当需要保存或退出文件时我们习惯性按一下ESC键以进入命令模式(当然如果已经在命令模式下也习惯性按一下吧)这时输入加相应的指令就能对文件执行相应的操作这里需要注意一点的就是如果你对该文件没有相应的权限那么执行相关操作将会被拒绝例如我在Ubuntu下想要修改我没有权限的文件vim会提示权限拒绝我需要执行sudo vim filename以root权限进入vim才能修改文件。按键具体意义:w保存编辑的内容:w!若文件属性为只读强制保存编辑的内容需要相应的权限:q退出vim:q!强制离开不保存编辑过的内容:wq保存后退出vim:wq!强制保存后退出vimZZ若文件没有改动则不储存离开若文件已经被改动过则储存后离开:w filename另存为filename:! command暂时离开vim到命令行模式下执行 command 的显示结果例如『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息配置方案这个只是一个简单的vim配置留下了一些我认为必要的功能没有那么多花俏的功能也不像网上一些文章分享的配置成酷炫的IDE我个人一贯的原则就是简洁明了使用方便即可。使用方法保存成名为.vimrc的文件放在目录下即用户个人目录下即可。******************************************************** 一般性配置 *********************************************************关闭vim一致性原则,避免以前版本的一些bug和局限set nocompatible显示行号set number设置在编辑过程中右下角显示光标的行列信息set ruler在状态栏显示正在输入的命令set showcmd设置历史记录条数set history1000设置取消备份 禁止临时文件的生成set nobackupset noswapfile设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号set showmatch设置C/C方式自动对齐set autoindentset cindent开启语法高亮功能syntax enablesyntax on指定配色方案为256色set t_Co256设置搜索时忽略大小写set ignorecase实时显示搜索结果set incsearch配置backspace的工作方式set backspaceindent,eol,start设置在vim中可以使用鼠标set mousea设置tab宽度set tabstop4设置自动对齐空格数set shiftwidth4设置退格键时可以删除4个空格set smarttabset softtabstop4将tab键自动转换为空格set expandtab设置编码方式set encodingutf-8自动判断编码时 依次尝试以下编码set fileencodingsucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1检测文件类型filetype on针对不同的文件采取不同的缩进方式filetype indent on启动智能补全filetype plugin indent on括号自动补全inoremap ( ()iinoremap [ []iinoremap { {}iinoremap i