vi命令模式怎么执行命令(vi常用操作)
vi常用操作
现在是70%的时间用Windows ,还有不少时间必须和vi打交道 ,不记录一下常用的vi操作实在是伤不起,记不清 。
vi的两种模式切换:
按Esc进入命令模式 ,可以在命令模式下进行保存 ,退出 ,查找 ,替换 ,复制 ,粘贴 ,删除行 ,恢复(undo) ,打开新文件,显示行号等操作 按i或者a进入编辑模式 ,可以输入字符 ,可以用delete与backspace删除字符(i表示insert,a表示add/append)在vi的配置文件~/.vimrc里加上syntax on(echo "syntax on" >> ~/.vmirc)就可以支持文件的语法高亮显示 ,一般缺省都至少有shell ,php,python ,c等语言的语法高亮支持 。如果这个不起作用 ,可能还要再加上一行syntax enable。
不过有时候你需要手工添加语法高亮文件 ,例如我就需要添加markdown的语法高亮 ,操作是这样的:
修改/usr/share/vim/vim#/filetype.vim文件(其中#表示你的vim版本号 ,如73) ,找到对应的行 ,为文件添加上后缀与文件类型的对应 ,例如我给markdown添加的关联规则在maple与map类型后面 ,代码如下: " Markdown au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.md setf markdown 将这个markdown的语法高亮文件下载回来,复制到/usr/share/vim/vim#/syntax目录下即可 如果某些文件是markdown文件 ,但是后缀比较少见 ,可以在vim的命令模式下:set filetype=markdown让vim以markdown的语法高亮模板来处理它下面是命令模式下的操作键组合:
$:光标移到当前行的末尾 ^:光标移到当前行的开头 *:在文件中查找光标当前所在的词 %:查找对应的另一半括号 x:删除一个字符 dd:删除当前行 dw:删除一个单词 dnd:从当前行开始删除n行 u:恢复上一次的修改操作,即Undo :w:保存 :q:关闭当前文件 ,如果只有一个文件则退出 。 :q!:放弃所有的修改 ,关闭当前文件 :set nu:显示行号,也可以写全 ,即:set number :set nonu:不显示行号 :n:跳转到第n行 /word:在文件中查找word这个字符串 ,这里word也可以是正则表达式 n:在文件中继续查找字符串 :tabnew filename:在新的Tab里面打开filename文件 :tabn:切换到下一个Tab :tabp:切换到上一个Tab复制粘贴的操作是这样的 ,首先进入命令模式 ,然后在待复制文本开始的地方按v ,接着移动到待复制文本结尾的地方按y ,最后到需要粘贴文本的地方按p即可 。
如果在上面第二步的时候不按y ,而是按x的话 ,那就是剪切 ,而不是复制了 。
vi的替换操作在命令模式下执行,操作是输入:ranges/search/replace/g 。其中:
range表示范围 ,%表示当前文件的所有行 ,.表示当前行,$表示最后一行 。例如10,20表示从第10行到第20行 ,.,$表示从当前行到最后一行 s表示替换 search是需要被替换的字符串的正则表达式 replace表示新的字符串或者新的字符串正则表达式 g可有可无 ,如果有的话就表示替换此范围内的所有search匹配的字符串,不然仅替换第一个字符串像块折叠之类的功能现在对我来说有点太高级了 ,也记不住那么多 ,等这些命令都倒背如流了再说 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!