[转]vim常用命令汇总

摘要:
N开始编辑下一个文件)vi xfilename(编辑加密文件)vi在vi中执行Unix命令([[数字表示唯一行]+r表示将结果读取到vi中]!Ls)vi命令行编辑功能($set ovi)II。行编辑器命令edit(或e,np(显示并移动到n行):np(将m行的内容显示到n行:nd(删除第n行的内容:a(在向下移动当前行的开始处输入文本,mn的替换范围限于m行到n行。),


neonlight@live.cn发表,转载请注明出处。

一、进入编辑器
行:edit,e,ex
屏幕:vi,v,view
vi -r filename(继续意外中断的文件编辑)
vi file1 file2 file3(编辑完前一个文件,用:w保存后,用:n开始下一个文件编辑)
vi -x filename(对encrypt加密文件编辑)
vi 中执行Unix命令([[加数字代表独到第几行]加r代表把结果读进vi中]!ls)
vi 命令行编辑功能($set -o vi)

二、行编辑器命令
edit(或e,ex)命令
屏编转换:v(转屏编),vi(转屏编),:(转行便)
:wq(存盘退出),:q(退出),:q!(强行退出),:w(保存),:w file(另存为)
:n(移动到n行),:np(显示并移动到n行),:m,np(显示m行到n行内容,移动到n行),
:d(显示当前行),:nd(删除第n行内容,移动到n下一行),:m,nd(删除第m到第n行,移动到n行),
:a(在当前行的下移行开始输入文本,直到ESC),1,$(第一行到最后行),:.,$(当前行到最后行)

举例:
:s/stirng1/string2/(把第一个字符替换为第二个字符)
:m,ns/string1/string2/g(g代表所有,mn替换范围限制在m行到n行中)
:%s/string1/string2/g(%代表全文替换)

三、vi基础控制命令
:wq(存盘退出),:q(退出),:q!(强行退出),:w(保存),:w file(另存为)
:r filename(把文件加到当前行后)
光标移动:上下左右方向键,或hjkl,^(行首),$(行尾),
+(下移一行),-(上移一行),空格(左移),退格(右移)
进入编辑态:(光标前),I(行首),a(光标后),A(行尾),o(下面加行),O(上面加行),ESC(返回命令模式)

四、vi基础编辑命令
删除文本:x(字符),dw(单词),D(当前位置到行尾),dd(当前行)
替换文本:r(单个字符),cw(单词)
搜索文本:/(当前向尾),?(当前向头),n(找下一个),N(找前一个)
其它命令:u(撤销),.(重复),J(连接下移行),P(粘贴删除内容)

命令举例:2dd/p(删除两行粘贴),2yy/p(复制两行粘贴)

五、vi设置命令
加行序号:set number,set nonumber

六、vi集合命令
在一段文字前,垂直插入字符串

ctrl+v  //垂直作块选中段落首列
shirt+i //在文本前插入
输入字符串
Esc      //命令结束
}

七、vi编程技巧
跟踪头文件:gf
查看函数定义:[+I
跳转到函数定义:[+tab
ctags命令
定义跟踪:ctrl+[
ctrl+o:跟踪返回

可用ctrl+z将vi转入后台,fg可返回vi
make调试窗口:
在执行过:make后,执行cw,窗口出现
关闭调试窗口cclose或ctrl+w  c

.重复上次的命令

八、vim折叠命令
前言准备:
(1)首先保证自己安装的是完整版vim,ubuntu 8.04自带的不是完整版。
(2)懒得看长文章,列举最实用的折叠语句。
(3)在foldmethod=manual 状态下执行,你可以用:set foldmethod=manual命令切换到这个状态。
(4)neonlight@live.cn发表,转载请注明出处。

建立折叠:
(1)zf:用v做块选定要折叠的语句,折叠用zf(z很像折叠的形状,f是fold缩写)。
(2)zf[x]j:向下折叠x行,例如zf9j。
(3)可以用一般的定位的方法来告诉VIM你要折叠那些地方:也可以用marker, 还可以用行号:20,50, 就可以把20行到五十行折叠起来 。
(4)方便的折起函数:移动到一个花括号{上(或者函数体内也行), 用zfa}, 就可以将下面的匹配的花括号之间的内容折起来。 其他的折叠方法还有zf/string, 可以折叠到下一个匹配的string。

使用折叠:
(1)移动的时候在前面加一个z就可以在折叠的地方移动, 比如zj,就会跳到下一个折叠, zk就是上一个。
(2)要打开的话可以zo,o是open的意思, zO打开所有的折叠。
(3)关上用zc, c是close。 在zO之后用zc会关上所有打开的折叠。
(4)折叠可以嵌套, zr可以打开第一层的折叠,zR可以打开所有层的折叠, 与之对应的是zm和zM, 是按层关上折叠。 比如说按zm, 会从最里层的层叠关起, 连续zm就会一直关到最上层的折叠。

查找到了折叠里面会将折叠打开, 处理完了之后要自己将折叠关上。

折叠选项:
可以让VIM根据语法, 缩进,标记自动折叠。 用set foldmethod=foldoption 来设定。 可以查看一下foldmethod 。

保留折叠:
(1)要下一次打开的时候还保留折叠可以在离开的时候:mkview,再进来的时候:loadview就可以了。
(2)当然也可以将这两句加到vimrc里面让其自动完成。
au BufWinLeave * mkview
au BufWinEnter * silent loadview
这样每次就可以看到上次的折叠了。

其它技巧:
:set foldmethod=manual后,zc按缩进关闭所有折叠

九、vim标签命令

:tabnew 打开新标签

gt 标签间转换

十、vim选块命令

选定块后

shift+<向左移,shift+>向右移

免责声明:文章转载自《[转]vim常用命令汇总》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇wpf中的全局键Python 文件读写操作-Python零基础入门教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

shell实现大批量word转码然后分析相关字段

需求 需要从服务器中的所有附件(2013-2019) 共60G查找相关字段 在linux上面直接打开doc等是乱码的 思路 先全部附件转码为txt, 然后用grep遍历查找字段实现 转码shell #!/bin/bash #*******************************************************************...

iOS NSString 截取字符串(根据索引截取)

1. rangeOfString:截取指定字符串的长度; 2. substringToIndex:7:截取从0 索引到指定索引(7)长度的字符串 (从0到7)3. substringFromIndex:9:截取从指定索引(9)到末尾长度的字符串  (从9到0)4. substringWithRange:NSMakeRange(4,2):截取从指定索引(4)...

client intended to send too large body

2012/11/14 19:15:20 [error] 16038#0: *1281 client intended to send too large body: 1797176 bytes, client: 10.96.54.125, server: localhost, request: "PUT /svn/repos/!svn/txr/44-1i/...

反向代理软件之HAproxy高级功能及配置

基于cookie的会话保持 cookie value:为当前server指定cookie值,实现基于cookie的会话黏性,相对于基于 source 地址 hash 调度算法对客户端的粒度更精准,但同时也加重了haproxy负载,目前此模式使用较少, 已经被 session共享服务器代替 注意:不支持 tcp mode,使用 http mode 配置选项...

vscode开发vue项目使用eslint+prettier格式化:保存时自动执行lint进行修复(升级篇,保存时可格式化模板和css)

说明,之前的vscode开发vue项目保存时自动执行lint进行修复保存格式化,只对vue中js部分有效,template和css没有格式化,先基于此进行升级,步骤如下: 1. vue-cli创建项目时选择eslint+prettier(也可后期安装使用) 2. .eslintrc.js文件配置eslint规则(按照自己需求定义) 3. .eslintig...

Delphi断点调试-初级

所谓断点,就是在程序代码的某一行上设置一个标记,程序执行到这里将暂停,由调 试器接管对程序的控制。使用断点与使用【Runto Cursor】命令有些相似,都是执行到某 一行后暂停。不同的是,程序中可以设置多个断点并且能够给断点设置条件。   断点通常设置在有疑点的区域。在遇到断点之前,程序以全速运行。遇到断点之后,程序暂时停止运行,以后就可以单步或跟踪执行...