VIM指令集

合集下载

Vim常用操作命令整理

Vim常用操作命令整理

Vim 常用操作命令整理导读vim是类unix系统里最常用的编辑器之一,有很多常用的操作命令,如果能熟练使用,一定会提高自己的输入速度,接下来整理了常用的命令。

打开关闭•vim xxx,vim +num xxx 命令行打开文件vim + filename 启动跳到文件结尾vim +143 filename 打开跳到143行调试代码有用vim +/search-term filename 跳到第一个匹配vim +/search-term filename 跳到最后一个匹配vim -t tagvim —cmd command filename 加载文件前执行命令vim -c “:50” filename 加载文件后执行命令:e xxx vim中打开文件:w[rite],:up[date],:w!,up!,:wall保存文件: x,:q,:qa,:q!,退出文件gf 普通模式下打开文件名为光标处文字的文件Ctrl+W f 新窗口打开匹配的文件Ctrl+W fg 新tab页打开匹配的文件代码相关•<,>对代码进行缩进<<,>>用于调整源代码缩进格式= 用户自动格式化代码缩进,gg=G 即为全文格式化***,zo,zc,za,zR,zM对代码进行折叠打开折叠Ctrl+],Ctrl+T查找函数的定义和返回大写K,看光标所指标识符的man帮助移动光标•h,j,k,l ←↓↑→ 移动光标,相当于四个方向键w,b,e,ge 以单词的方式移动,可以nw,nb,ne,nge的方式移动n个单词的距离W,B,E,gE会以连续字符串的方式移动0,^,g_,移动到行首,行尾以及后面第n行的行尾gg,G,nG,ngg 移动到文件头和文件尾,以及移动到文件的第n行,‘可以回到上一次的地方H,M,L n%定位光标到当前屏幕的某个地方{,},[[,]],(,) 段落,区块,语句导航z回车,z-,zz.当前行置顶,置底,置中Ctrl+G显示当前位置信息Ctrl+F,Ctrl+B,Ctrl+U,Ctrl+D,Ctrl+E,Ctrl+Y,向前后滚动一屏,半屏,一行Ctrl+I,Ctrl+O 光标移到下一次和上一次的地方,Ctrl+I 和Tab功能一样‘,”,[,]为跳转前的位置,最后编辑的光标位置,最后修改的开始位置,最后修改的结束位置Ctrl+^ 在两个文件之间轮换‘“,’.,`.上一次光标的地方,上一次修改的地方编辑•i,a,o,I,A,O分别进入插入模式o 在当前光标所在行下方插入一行,O在当前光标所在行上方插入一行J 删除换行符,合并两行Ctrl-R 重做u,nu撤销上一次更改,撤销n次更改U 撤销整行的更改Ctrl+R 重做更改Ctrl+L 重新加载屏幕内容y,d,p 表示拷贝,删除,粘贴,配置位置描述使用 yw,dw,y0,d0,y,yfa,dfa,yy,dd,D,dG,dgg等,前面可以加数字,表示重复如,3dd,3yy等,也可以加范围,如4,8yy%y+.y+,N,My+ 拷贝指定的数据:[range] g[lobal[!]] /{pattern}/ [cmd]:[range] v[global[!]] /{pattern}/ [cmd]n,p,next,previous,Ctrl+^在编辑的文件中切换:ls 查看打开的文件:e #n 打开标号为ls结果中的文件:changes 查看文件变化ga查看ASCII,十进制,十六进制查找•/pattern-回车在文件内向后查找pattern的匹配,n重复,N回退,n 前面可以带数字pattern-回车在文件内向前查找pattern的匹配,n重复,N回退,n前面可以带数字f{char}/t{char} 在行内查找下一指定字符, ;重复, ,回退F{char}/T{char} 在行内查找上一指定字符, ;重复, ,回退*,#高亮所有匹配光标所在单词,相当于输入了/word,如果想单独匹配单词/\<word\>,则需要g*,g# ,gd提留在非注释段的第一个匹配\<,\>表示匹配单词的开头和结尾.,^,$在查找的过程中作为正则策略,如果需要完全匹配需要转义% 查找匹配的括号() [] {}替换•. 重复上次的修改(一定要是修改)比如说上次删除一个字符,点就是删除一个字符的意思;如果上次是删除一行,点就是删除一行的意思了。

最详细VIM命令大全

最详细VIM命令大全

VIM命令大全2009-07-02 10:50 A.M.光标控制命令命令光标移动h 向左移一个字符j 向下移一行k 向上移一行l 向右移一个字符G 移到文件的最后一行w 移到下一个字的开头W 移到下一个字的开头,忽略标点符号b 移到前一个字的开头B 移到前一个字的开头,忽略标点符号L 移到屏幕的最后一行M 移到屏幕的中间一行H 移到屏幕的第一行e 移到下一个字的结尾E 移到下一个字的结尾,忽略标点符号( 移到句子的开头) 移到句子的结尾{ 移到段落的开头} 移到下一个段落的开头0(数字), | 移到当前行的第一列^ 移到当前行的第一个非空字符$ 移到当前行的最后一个字符+, Enter 移到下一行的第一个字符- 移到前一行的第一个非空字符在 vi 中添加文本命令插入动作a 在光标后插入文本A 在当前行插入文本i 在光标前插入文本I 在当前行前插入文本o 在当前行的下边插入新行O 在当前行的上边插入新行s 删除光标所在处字符,并进入插入模式S 删除光标所在的行,并进入插入模式:r file 读入文件 file 内容,并插在当前行后:nr file 读入文件 file 内容,并插在第 n 行后Esc 回到命令模式^v char 插入时忽略 char 的指定意义,这是为了插入特殊字符在 vi 中删除文本命令删除操作x 删除光标处的字符dw 删至下一个字的开头dG 删除行,直到文件结束dd 删除整行db 删除光标前面的字:n,md 从第 m 行开始往前删除 n 行d, d$ 从光标处删除到行尾^h, backspace 插入时,删除前面的字符^w 插入时,删除前面的字修改 vi 文本每个命令前面的数字表示该命令重复的次数命令替换操作rchar 用 char 替换当前字符R text escape 用 text 替换当前字符直到按下 Esc 键stext escape 用 text 代替当前字符S 或 cctext escape 用 text 代替整行cwtext escape 将当前字改为 text Ctext escape 将当前行余下的改为textcG escape 修改至文件的末尾ccursor_cmd text escape 从当前位置处到光标命令位置处都改为text在 vi 中查找与替换命令查找与替换操作/text 在文件中向前查找 texttext 在文件中向后查找 textn 在同一方向重复查找N 在相反方向重复查找ftext 在当前行向前查找 textFtext 在当前行向后查找 textttext 在当前行向前查找 text,并将光标定位在 text 的第一个字符Ttext 在当前行向后查找 text,并将光标定位在 text 的第一个字符:set ic 查找时忽略大小写:set noic 查找时对大小写敏感:ranges/pat1/pat2/g 用 newtext 替换 oldtext:m,ns/oldtext/newtext 在 m 行通过 n,用 newtext 替换oldtext&重复最后的 :s 命令:g/text1/s/text2/text3 查找包含 text1 的行,用 text3 替换 text2:g/text/command 在所有包含 text 的行运行command 所表示的命令:v/text/command 在所有不包含 text 的行运行 command 所表示的命令在 vi 中复制文本命令复制操作yy 将当前行的内容放入临时缓冲区nyy 将 n 行的内容放入临时缓冲区p 将临时缓冲区中的文本放入光标后P 将临时缓冲区中的文本放入光标前"(a-z)nyy 复制 n 行放入名字为圆括号内的可命名缓冲区,省略 n 表示当前行"(a-z)ndd 删除 n 行放入名字为圆括号内的可命名缓冲区,省略 n 表示当前行"(a-z)p 将名字为圆括号的可命名缓冲区的内容放入当前行后"(a-z)P 将名字为圆括号的可命名缓冲区的内容放入当前行前在 vi 中撤消与重复命令撤消操作u 撤消最后一次修改U 撤消当前行的所有修改. 重复最后一次修改, 以相反的方向重复前面的 f、F、t 或 T 查找命令; 重复前面的 f、F、t 或 T 查找命令"np 取回最后第 n 次的删除(缓冲区中存有一定次数的删除内容,一般为 9)n 重复前面的 / 或 ? 查找命令N 以相反方向重复前面的 / 或 ? 命令保存文本和退出 vi命令保存和/或退出操作:w 保存文件但不退出 vi:w file 将修改保存在 file 中但不退出 vi :wq 或 ZZ 或 :x 保存文件并退出 vi:q! 不保存文件,退出 vi:e! 放弃所有修改,从上次保存文件开始再编辑vi 中的选项选项作用:set all 打印所有选项:set nooption 关闭 option 选项:set nu 每行前打印行号:set showmode 显示是输入模式还是替换模式:set autoindent 继承前一行的缩进方式,特别适用于多行注释:set smartindent 为C程序提供自动缩进:set list 显示制表符(^I)和行尾符号:set ts=8 为文本输入设置 tab stops:set window=n 设置文本窗口显示 n 行:set number 显示行数:set nonumber 取消显示行数vi 的状态选项作用:.= 打印当前行的行号:= 打印文件中的行数ctrl+g 显示文件名、当前的行号、文件的总行数和文件位置的百分比:l 使用字母 "l" 来显示许多的特殊字符,如制表符和换行符在文本中定位段落和放置标记选项作用{ 在第一列插入 { 来定义一个段落[[ 回到段落的开头处]] 向前移到下一个段落的开头处m(a-z) 用一个字母来标记当前位置,如用 mz 表示标记 z'(a-z) 将光标移动到指定的标记,如用 'z 表示移动到 z在 vi 中连接行选项作用J 将下一行连接到当前行的末尾nJ 连接后面 n 行光标放置与屏幕调整选项作用H 将光标移动到屏幕的顶行nH 将光标移动到屏幕顶行下的第 n 行M 将光标移动到屏幕的中间L 将光标移动到屏幕的底行nL 将光标移动到屏幕底行上的第 n 行^e(ctrl+e) 将屏幕上滚一行ctrl+y 将屏幕下滚一行ctrl+u 将屏幕上滚半页ctrl+d 将屏幕下滚半页ctrl+b 将屏幕上滚一页ctrl+f 将屏幕下滚一页ctrl+l 重绘屏幕z-return 将当前行置为屏幕的顶行nz-return 将当前行下的第 n 行置为屏幕的顶行z. 将当前行置为屏幕的中央nz. 将当前行上的第 n 行置为屏幕的中央z- 将当前行置为屏幕的底行nz- 将当前行上的第 n 行置为屏幕的底行vi 中的 shell 转义命令选项作用:!command 执行 shell 的 command 命令,如 :!ls :!! 执行前一个 shell 命令:r!command 读取 command 命令的输入并插入,如 :r!ls 会先执行 ls,然后读入内容:w!command 将当前已编辑文件作为 command 命令的标准输入并执行 command 命令,如 :w!grep all:cd directory 将当前工作目录更改为 directory 所表示的目录:sh 将启动一个子 shell,使用^d(ctrl+d) 返回 vi:so file 在 shell 程序 file 中读入和执行命令vi 中的宏与缩写(避免使用控制键和符号,不要使用字符 K、V、g、q、v、*、= 和功能键)选项作用:map key command_seq 定义一个键来运行 command_seq,如 :map e ea,无论什么时候都可以 e 移到一个字的末尾来追加文本:map 在状态行显示所有已定义的宏:umap key 删除该键的宏:ab string1 string2 定义一个缩写,使得当插入 string1 时,用 string2 替换 string1。

最详细VIM命令大全资料

最详细VIM命令大全资料

VIM命令大全2009-07-02 10:50 A.M.光标控制命令命令光标移动h 向左移一个字符j 向下移一行k 向上移一行l 向右移一个字符G 移到文件的最后一行w 移到下一个字的开头W 移到下一个字的开头,忽略标点符号b 移到前一个字的开头B 移到前一个字的开头,忽略标点符号L 移到屏幕的最后一行M 移到屏幕的中间一行H 移到屏幕的第一行e 移到下一个字的结尾E 移到下一个字的结尾,忽略标点符号( 移到句子的开头) 移到句子的结尾{ 移到段落的开头} 移到下一个段落的开头0(数字), | 移到当前行的第一列^ 移到当前行的第一个非空字符$ 移到当前行的最后一个字符+, Enter 移到下一行的第一个字符- 移到前一行的第一个非空字符在 vi 中添加文本命令插入动作a 在光标后插入文本A 在当前行插入文本i 在光标前插入文本I 在当前行前插入文本o 在当前行的下边插入新行O 在当前行的上边插入新行s 删除光标所在处字符,并进入插入模式S 删除光标所在的行,并进入插入模式:r file 读入文件 file 内容,并插在当前行后:nr file 读入文件 file 内容,并插在第 n 行后Esc 回到命令模式^v char 插入时忽略 char 的指定意义,这是为了插入特殊字符在 vi 中删除文本命令删除操作x 删除光标处的字符dw 删至下一个字的开头dG 删除行,直到文件结束dd 删除整行db 删除光标前面的字:n,md 从第 m 行开始往前删除 n 行d, d$ 从光标处删除到行尾^h, backspace 插入时,删除前面的字符^w 插入时,删除前面的字修改 vi 文本每个命令前面的数字表示该命令重复的次数命令替换操作rchar 用 char 替换当前字符R text escape 用 text 替换当前字符直到按下 Esc 键stext escape 用 text 代替当前字符S 或 cctext escape 用 text 代替整行cwtext escape 将当前字改为 text Ctext escape 将当前行余下的改为textcG escape 修改至文件的末尾ccursor_cmd text escape 从当前位置处到光标命令位置处都改为text在 vi 中查找与替换命令查找与替换操作/text 在文件中向前查找 text?text 在文件中向后查找 textn 在同一方向重复查找N 在相反方向重复查找ftext 在当前行向前查找 textFtext 在当前行向后查找 textttext 在当前行向前查找 text,并将光标定位在 text 的第一个字符Ttext 在当前行向后查找 text,并将光标定位在 text 的第一个字符:set ic 查找时忽略大小写:set noic 查找时对大小写敏感:ranges/pat1/pat2/g 用 newtext 替换 oldtext:m,ns/oldtext/newtext 在 m 行通过 n,用 newtext 替换oldtext&重复最后的 :s 命令:g/text1/s/text2/text3 查找包含 text1 的行,用 text3 替换 text2:g/text/command 在所有包含 text 的行运行command 所表示的命令:v/text/command 在所有不包含 text 的行运行 command 所表示的命令在 vi 中复制文本命令复制操作yy 将当前行的内容放入临时缓冲区nyy 将 n 行的内容放入临时缓冲区p 将临时缓冲区中的文本放入光标后P 将临时缓冲区中的文本放入光标前"(a-z)nyy 复制 n 行放入名字为圆括号内的可命名缓冲区,省略 n 表示当前行"(a-z)ndd 删除 n 行放入名字为圆括号内的可命名缓冲区,省略 n 表示当前行"(a-z)p 将名字为圆括号的可命名缓冲区的内容放入当前行后"(a-z)P 将名字为圆括号的可命名缓冲区的内容放入当前行前在 vi 中撤消与重复命令撤消操作u 撤消最后一次修改U 撤消当前行的所有修改. 重复最后一次修改, 以相反的方向重复前面的 f、F、t 或 T 查找命令; 重复前面的 f、F、t 或 T 查找命令"np 取回最后第 n 次的删除(缓冲区中存有一定次数的删除内容,一般为 9)n 重复前面的 / 或 ? 查找命令N 以相反方向重复前面的 / 或 ? 命令保存文本和退出 vi命令保存和/或退出操作:w 保存文件但不退出 vi:w file 将修改保存在 file 中但不退出 vi :wq 或 ZZ 或 :x 保存文件并退出 vi:q! 不保存文件,退出 vi:e! 放弃所有修改,从上次保存文件开始再编辑vi 中的选项选项作用:set all 打印所有选项:set nooption 关闭 option 选项:set nu 每行前打印行号:set showmode 显示是输入模式还是替换模式:set autoindent 继承前一行的缩进方式,特别适用于多行注释:set smartindent 为C程序提供自动缩进:set list 显示制表符(^I)和行尾符号:set ts=8 为文本输入设置 tab stops:set window=n 设置文本窗口显示 n 行:set number 显示行数:set nonumber 取消显示行数vi 的状态选项作用:.= 打印当前行的行号:= 打印文件中的行数ctrl+g 显示文件名、当前的行号、文件的总行数和文件位置的百分比:l 使用字母 "l" 来显示许多的特殊字符,如制表符和换行符在文本中定位段落和放置标记选项作用{ 在第一列插入 { 来定义一个段落[[ 回到段落的开头处]] 向前移到下一个段落的开头处m(a-z) 用一个字母来标记当前位置,如用 mz 表示标记 z'(a-z) 将光标移动到指定的标记,如用 'z 表示移动到 z在 vi 中连接行选项作用J 将下一行连接到当前行的末尾nJ 连接后面 n 行光标放置与屏幕调整选项作用H 将光标移动到屏幕的顶行nH 将光标移动到屏幕顶行下的第 n 行M 将光标移动到屏幕的中间L 将光标移动到屏幕的底行nL 将光标移动到屏幕底行上的第 n 行^e(ctrl+e) 将屏幕上滚一行ctrl+y 将屏幕下滚一行ctrl+u 将屏幕上滚半页ctrl+d 将屏幕下滚半页ctrl+b 将屏幕上滚一页ctrl+f 将屏幕下滚一页ctrl+l 重绘屏幕z-return 将当前行置为屏幕的顶行nz-return 将当前行下的第 n 行置为屏幕的顶行z. 将当前行置为屏幕的中央nz. 将当前行上的第 n 行置为屏幕的中央z- 将当前行置为屏幕的底行nz- 将当前行上的第 n 行置为屏幕的底行vi 中的 shell 转义命令选项作用:!command 执行 shell 的 command 命令,如 :!ls :!! 执行前一个 shell 命令:r!command 读取 command 命令的输入并插入,如 :r!ls 会先执行 ls,然后读入内容:w!command 将当前已编辑文件作为 command 命令的标准输入并执行 command 命令,如 :w!grep all:cd directory 将当前工作目录更改为 directory 所表示的目录:sh 将启动一个子 shell,使用^d(ctrl+d) 返回 vi:so file 在 shell 程序 file 中读入和执行命令vi 中的宏与缩写(避免使用控制键和符号,不要使用字符 K、V、g、q、v、*、= 和功能键)选项作用:map key command_seq 定义一个键来运行 command_seq,如 :map e ea,无论什么时候都可以 e 移到一个字的末尾来追加文本:map 在状态行显示所有已定义的宏:umap key 删除该键的宏:ab string1 string2 定义一个缩写,使得当插入 string1 时,用 string2 替换 string1。

vim命令一览表v4

vim命令一览表v4

Vi常用命令一览表◆进入vivi filename打开或新建文件,并将光标置于第一行首vi +n filename打开文件,并将光标置于第n行首vi + filename 打开文件,并将光标置于最后一行首vi +/pattern filename打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename在上次正用vi编辑时发生系统崩溃,恢复filenamevi filename....filename打开多个文件,依次进行编辑◆文件操作与外部命令执行( :w, :e, :x, :q, :!, :w!, :r! ):w保存当前文件:e filename打开文件filename进行编辑:x保存当前文件并退出( :wq ):q退出vi:q!不保存文件并退出vi:!command执行shell命令command:n1,n2 w!command将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入:r!command将命令command的输出结果放到当前行◆移动光标 ( h,l,k,j, w,b,e, f,t (,),{,},+,-,$,0,^ )h光标左移一个字符,8h左移8个字符,以下可类推l光标右移一个字符,到本行右端不再移动k或Ctrl+p光标移到上一行的同列位置j或Ctrl+n光标移到下一行的同列位置space光标右(后)移一个字符,到本行右端将移到下一行Backspace光标左(前)移一个字符,到本行左端将移到上一行 (Backspace在键盘模式VT420PC才有效)<CR>光标移到下一行行首w或W光标右移一个字至字首b或B光标左移一个字至字首e或E光标右移一个字至字尾f?或F?光标移动到下一个字符?处,f右,F左,限当前行t?或T? 光标移动到下一个字符?前,)或(光标移至句尾())或句首(()}或{光标移至段落段落结尾(})或段落开头({)%光标移至匹配的括号处(),{},[]n G光标移至第n行首n+光标下移n行,到行首(同 n<CR>)n-光标上移n行,到行首n$光标移至第n行尾。

Vim编辑指令

Vim编辑指令

Vim编辑指令基本命令Esc 或 Ctrl+[ 进⼊普通模式i (插⼊) a (附加) 进⼊插⼊模式wq 回车保存退出vim后⾯加上你要打开的已存在的⽂件名或者不存在(则作为新建⽂件)的⽂件名。

打开Xfce终端$ vim practice_1.txt直接使⽤vim也可以打开vim编辑器 vim进⼊命令⾏模式后输⼊:e ⽂件路径同样可以打开相应⽂件游标移动h左l右(⼩写L)j下k上w移动到下⼀个单词b移动到上⼀个单词在普通模式下使⽤下⾯的键将进⼊插⼊模式,并可以从相应的位置开始输⼊命令说明i在当前光标处进⾏编辑I在⾏⾸插⼊A在⾏末插⼊a在光标后插⼊编辑o在当前⾏后插⼊⼀个新⾏O在当前⾏前插⼊⼀个新⾏cw替换从光标所在位置后到⼀个单词结尾的字符请尝试不同的从普通模式进⼊插⼊模式的⽅法,在最后⼀⾏shiyanlou前⾯加上www.,注意每次要先回到普通模式才能切换成以不同的⽅式进⼊插⼊模式保存⽂档(命令⾏模式下保存⽂档)从普通模式输⼊:进⼊命令⾏模式,输⼊w回车,保存⽂档。

输⼊:w ⽂件名可以将⽂档另存为其他⽂件名或存到其它路径下退出vim(命令⾏模式下退出vim)从普通模式输⼊:进⼊命令⾏模式,输⼊wq回车,保存并退出编辑命令说明q!强制退出,不保存q退出wq!强制保存并退出w <⽂件路径>另存为saveas ⽂件路径另存为x保存并退出wq保存并退出普通模式下退出vim普通模式下输⼊Shift+zz即可保存退出vim删除⽂本(普通模式下删除vim⽂本信息)进⼊普通模式,使⽤下列命令可以进⾏⽂本快速删除命令说明x删除游标所在的字符X删除游标所在前⼀个字符Delete同xdd删除整⾏dw删除⼀个单词(不适⽤中⽂)d$或D删除⾄⾏尾d^删除⾄⾏⾸dG删除到⽂档结尾处d1G删⾄⽂档⾸部u撤销ndd删除光标所在位置起的多⾏n为数字yy复制光标当前所在的那⼀⾏nyy复制多⾏为n的数字p将已复制的内容粘贴到光标所在的位置的下⼀⾏⼤P将已复制的内容粘贴到光标所在位置的上⼀⾏np粘贴多⾏到光标的下⼀⾏为n的数字cttl+r重复上⼀次操作$跳到⼀⾏的尾部0跳到⼀⾏的头部gg移动到这个⽂件的第⼀⾏G跳到这个⽂件的最后⼀⾏nG跳到n⾏set nu显⽰⾏号H光标移动到屏幕的最上⽅那⼀⾏的第⼀个字符M光标移动到屏幕的中央那⼀⾏的第⼀个字符L光标移动到屏幕的最下⾯那⼀⾏的第⼀个字符vim重复命令重复执⾏上次命令在普通模式下.(⼩数点)表⽰重复上⼀次的命令操作拷贝测试⽂件到本地⽬录$ cd /home/shi$ cp /etc/protocols .游标的快速跳转普通模式下,下列命令可以让光标快速调转到指定位置,我们分别讨论快速实现⾏间跳转和⾏内跳转⾏间跳转命令说明nG(n shift+g)游标移动到第 n ⾏(如果默认没有显⽰⾏号,请先进⼊命令模式,输⼊:set nu以显⽰⾏号) gg游标移动到第⼀⾏G(Shift+g)到最后⼀⾏⼩技巧:你在完成依次跳转后,可以使⽤ Ctrl+o 快速回到上⼀次(跳转前)光标所在位置,这个技巧很实⽤,⽐如当你在写代码时,忽然想起有个 bug,需要修改,这时候你跳过去改好了,只需要按下 Ctrl+o 就可以回到你之前的位置。

Vim命令列表

Vim命令列表

Vim命令列表操纵文件Vim命令动作:e filename 打开一个新文件,可以用TAB键自动补全:w filename 保存更改。

如果不指定文件名,Vim会存为你正在编辑的文件。

如果要存为不同的文件,需要指定文件名:q 退出Vim。

如果有未保存的更改,Vim会拒绝退出。

:q! 强制退出!:wq 写文件并退出:x 几乎和:wq一样,如果你修改了文件,它会写文件并退出。

如果你没有修改文件,Vim会不写文件直接退出。

文件内的移动These Vim commands and keys work both in command mode and visual mode.Vim命令动作j or Up Arrow 向上移动一行k or Down Arrow 向下移动一行l or Right Arrow 向右移动一个字符h or Left Arrow 向左移动一个字符e 移动到一个词(word)尾E 移动到白空格(whitespace)分隔的词尾b 移动到一个词(word)的开头B 移动到白空格(whitespace)分隔的词头0 移动到行首^ 移动到一行的首个非白空格的字符$ 移动到行尾H 移动到屏幕的第一行M 移动到屏幕的中间一行L 移动到屏幕的最后一行:n 跳至屏幕的第n行插入和替换文本Vim命令动作i 在光标之前插入I 在该行行首插入a 在光标之后插入A 在该行行尾插入o 在下一行新建一行并插入O 在上一行新建一行并插入C Change the rest of the current line.r 覆盖一个字符。

在覆盖完成以后,回到命令模式。

R 进入插入模式,但是不再是插入文本,而是覆盖文本。

跟word 里insert键的作用类似ESC 退出插入/改写模式,回到命令模式。

删除文本Vim命令动作x 删除光标后的字符X 删除光标前的字符dd or :d 删除当前行进入可视模式(Visual mode)Vim命令动作v 开始定义高亮字符,用定位键(j or 向下键等)来选择要高亮的文本。

vim命令全集

vim命令全集

Vim常用命令1.vi 模式a) 一般模式:vi 处理文件时,一进入该文件,就是一般模式了.b) 编辑模式:在一般模式下可以进行删除,复制,粘贴等操作,却无法进行编辑操作。

等按下‘i,I,o,O,a,A,r,R’等字母之后才能进入编辑模式.通常在linux中,按下上述字母时,左下方会出现'INSERT'或者‘REPLACE’字样,才可以输入任何文字到文件中.要回到一般模式,按下[ESC]键即可.c) 命令行模式:在一般模式中,输入“: 或者/或者?”,即可将光标移动到最下面一行,在该模式下,您可以搜索数据,而且读取,存盘,大量删除字符,离开vi,显示行号等操作.2.vi 常用命令汇总:2.1 一般模式a) 移动光标:--> 上下左右方向键↑↓←→--> 上下左右方向键k j h l--> 翻页pagedown / pageup 按键--> 数字0 : 将光标移动到当前行首--> $ :将光标移动到当前行尾--> G : 移动到这个文件的最后一行nG : n 为数字,移动到这个文件的第n行.--> gg: 移动到这个文件的第一行相当于1Gb) 搜索与替换--> /word : 从光标开始,向下查询一个名为word的字符串。

--> ?word : 从光标开始,向下查询一个名为word的字符串。

--> :n1、n2s/word1/word2/g : n1 与n2 为数字.在第n1与n2行之间寻找word1这个字符串,并将该字符串替换为word2。

--> :1、$s/word1/word2/g : 从第一行到最后一行寻找word1字符串,并将该字符串替换为word2--> :1、$s/word1/word2/gc: 从第一行到最后一行寻找word1字符串,并将该字符串替换为word2,并且在替换之前显示提示符给用户确认(conform)是否需要替换。

linux--VIM命令大全

linux--VIM命令大全

基础在文件中移动剪切、复制和粘贴搜索替换大小写读写文件文件浏览器和 Unix 系统交互对齐Tabs/Windows分屏显示自动完成Marks缩写文本缩进语法高亮插入模式下的命令:一般使用Vim时都在正常模式下,但如果知道几个专门用于插入模式下的快捷命令,会感觉更快捷一些。

参考:help insert-index,事实上插入模式下的自动补全功能,那个才真正给力。

调整缩进在插入模式下如果希望调整行的缩进,可以<Esc>返回正常模式,>或者<调整缩进,然后使用i或者a返回插入模式下,要按3次键,下面的组合键能够实现在插入模式下的缩进调整,每次调整一个shiftwidth宽度。

这个尤其用在写if之类的缩进结构时候,很方便。

CTRL+D 减少缩进CTRL+T 增加缩进复制相邻行的内容写东西的时候经常出现相邻两行的内容很想近的情况,你可以用复制粘贴功能,也可以直接一个字符一个字符地复制。

CTRL+Y 复制上一行的相同列的字符CTRL+E 复制下一行的相同列的字符举个实际的例子,比如一行内容是:num1 is 数字在这一行下方新增加一个空白行(插入模式下在行尾回车或者正常模式下按o),光标在num1的n正下方,这时候按3下<ctrl+y>,num被复制到当前位置,输入数字2后继续<ctrl+y>,空格和汉字也能够正确被一个一个地复制下来。

粘贴剪贴板在插入模式下<CTRL+R> {0-9a-z"%#*:=}能够插入剪贴板的内容,如果想临时查看各个剪贴板的内容,可以使用<ctrl+o>:reg<回车>,会显示出各个剪贴板的内容。

当然输入这个命令很麻烦,做个快捷键吧,把下面这句放到你的vimrc里面,当然F3可以换成其他功能键,这样你在插入模式下就可以按F3列出所有剪贴板的当前内容,然后<CTRL+R>剪贴板名称吧,这样做的好处是粘贴完仍然在插入模式下。

vim手册-总结版

vim手册-总结版

Vi/Vim常用命令手册vi/vim(以下简称vi)一般情况下有三个操作模式一般模式(Normal Mode):vi处理文件时,默认就是一般模式。

在这个模式输入任何字符皆被视为指令。

可以进行“删除”“复制”“粘贴”等操作插入模式(Insert Mode):可以对文本进行编辑操作,如写入、修改文本。

命令行模式(Ed Mode):实现搜索,替换,保存等功能。

关于vi其他的信息我就不写了,我重点写一下vi(m)的用法。

目录Vi/Vim常用命令手册 (1)第一章 在一般模式的操作 (3)1.1 光标移动 (3)1.2 光标跳转 (3)1.3 删除和剪切操作 (4)1.4 复制与粘贴 (4)1.5 重复与取消操作 (4)1.6 查找与替换命令 (4)1.7 一般模式中的Visual block 模式(块操作模式) (5)第二章 Ed Mode(命令行模式) (8)1.保存,退出命令 (8)2.环境设置 (8)3.多文件、多窗口编辑 (8)4. 其他重要编辑命令 (8)第一章 在一般模式的操作1.1 光标移动附注一个经常遇到的问题是你用"j"命令向下移动了若干行后当前光标已经处于屏幕的底端了。

而你又想查看当前行前后的几行内容。

"zz"命令会把当前行置为屏幕正中央。

"zt"命令会把当前行置于屏幕顶端(t表示top),"zb"则把当前行置于屏幕底端(b表示bottom)1.2 光标跳转当你用"G"命令从一个地方跳转到另一个地方时,Vim会记得你起跳的位置,这个位置在Vim中是一个标记,使用下面的命令可以使你跳回到你刚才的出发点''这个符号是两个单引号。

再次使用上面的这个命令你就会又跳回来了。

这是因为''也是一个跳转命令,所以上次跳转时的起跳位置现在被标记为'了。

更一般地说,只要你执行一个命令使光标定位于当前行之外的某行上去,这都叫一个跳转。

vim_命令大全

vim_命令大全

VIM命令大全光标控制命令命令光标移动h 向左移一个字符j 向下移一行k 向上移一行l 向右移一个字符G 移到文件的最后一行nG 移动到这个文件的第n行。

例如20G,则会移动到这个文件的第20行(可配合:set nu)n<Enter> 光标向下移动n行n<space> 按下数字后再按空格键,光标会向右移动这一行的n个字符。

例如20<space>,则光标会向右移动20个字符w 移到下一个字的开头W 移到下一个字的开头,忽略标点符号b 移到前一个字的开头B 移到前一个字的开头,忽略标点符号L 移到屏幕的最后一行M 移到屏幕的中间一行H 移到屏幕的第一行e 移到下一个字的结尾E 移到下一个字的结尾,忽略标点符号( 移到句子的开头) 移到句子的结尾{ 移到段落的开头} 移到下一个段落的开头0(数字), | 移到当前行的第一列^ 移到当前行的第一个非空字符$ 移到当前行的最后一个字符+, Enter 移到下一行的第一个字符- 移到前一行的第一个非空字符在vi 中添加文本命令插入动作a 在光标后插入文本A 在当前行插入文本i 在光标前插入文本I 在当前行前插入文本o 在当前行的下边插入新行O 在当前行的上边插入新行s 删除光标所在处字符,并进入插入模式S 删除光标所在的行,并进入插入模式:r file 读入文件file 内容,并插在当前行后:nr file 读入文件file 内容,并插在第n行后Esc 回到命令模式^v char 插入时忽略char 的指定意义,这是为了插入特殊字符在vi 中删除文本命令删除操作x 删除光标处的字符dw 删至下一个字的开头dG 删除行,直到文件结束dd 删除整行ndd 删除光标所在列的向下n列,例如,20dd则是删除20列db 删除光标前面的字:n,md 从第m 行开始往前删除n 行d, d$ 从光标处删除到行尾^h, backspace 插入时,删除前面的字符^w 插入时,删除前面的字修改vi 文本每个命令前面的数字表示该命令重复的次数命令替换操作rchar 用char 替换当前字符R text escape 用text 替换当前字符直到按下Esc 键stext escape 用text 代替当前字符S 或cctext escape 用text 代替整行cwtext escape 将当前字改为textCtext escape 将当前行余下的改为textcG escape 修改至文件的末尾ccursor_cmd text escape 从当前位置处到光标命令位置处都改为text在vi 中查找与替换命令查找与替换操作/text 在文件中向前查找text?text 在文件中向后查找textn 在同一方向重复查找N 在相反方向重复查找ftext 在当前行向前查找textFtext 在当前行向后查找textttext 在当前行向前查找text,并将光标定位在text 的第一个字符Ttext 在当前行向后查找text,并将光标定位在text 的第一个字符:set ic 查找时忽略大小写:set noic 查找时对大小写敏感:ranges/pat1/pat2/g 用newtext 替换oldtext:m,ns/oldtext/newtext 在m 行通过n,用newtext 替换oldtext:1,$s/word1/word2/g 从第一行到最后一行查找word1字符串,并将该字符串替换为word2:1,$s/word1/word2/gc 从第一行到最后一行查找word1字符串,并将该字符串替换为word2,且在替换前显示提示符让用户确认(conform)(常用)& 重复最后的:s 命令:g/text1/s/text2/text3 查找包含text1的行,用text3 替换text2:g/text/command 在所有包含text 的行运行command 所表示的命令:v/text/command 在所有不包含text 的行运行command 所表示的命令在vi 中复制文本命令复制操作yy 将当前行的内容放入临时缓冲区nyy 将n 行的内容放入临时缓冲区p 将临时缓冲区中的文本放入光标后P 将临时缓冲区中的文本放入光标前"(a-z)nyy 复制n 行放入名字为圆括号内的可命名缓冲区,省略n 表示当前行"(a-z)ndd 删除n 行放入名字为圆括号内的可命名缓冲区,省略n 表示当前行"(a-z)p 将名字为圆括号的可命名缓冲区的内容放入当前行后"(a-z)P 将名字为圆括号的可命名缓冲区的内容放入当前行前在vi 中撤消与重复命令撤消操作u 撤消最后一次修改U 撤消当前行的所有修改. 重复最后一次修改, 以相反的方向重复前面的f、F、t 或T 查找命令; 重复前面的f、F、t 或T 查找命令"np 取回最后第n 次的删除(缓冲区中存有一定次数的删除内容,一般为9)n 重复前面的/ 或? 查找命令N 以相反方向重复前面的/ 或? 命令保存文本和退出vi命令保存和/或退出操作:w 保存文件但不退出vi:w file 将修改保存在file 中但不退出vi :wq 或ZZ 或:x 保存文件并退出vi:q! 不保存文件,退出vi:e! 放弃所有修改,从上次保存文件开始再编辑vi 中的选项选项作用:set all 打印所有选项:set nooption 关闭option 选项:set nu 每行前打印行号:set showmode 显示是输入模式还是替换模式:set autoindent 继承前一行的缩进方式,特别适用于多行注释:set smartindent 为C程序提供自动缩进:set list 显示制表符(^I)和行尾符号:set ts=8 为文本输入设置tab stops:set window=n 设置文本窗口显示n 行:set number 显示行数:set nonumber 取消显示行数vi 的状态选项作用:.= 打印当前行的行号:= 打印文件中的行数ctrl+g 显示文件名、当前的行号、文件的总行数和文件位置的百分比:l 使用字母"l" 来显示许多的特殊字符,如制表符和换行符在文本中定位段落和放置标记选项作用{ 在第一列插入{ 来定义一个段落[[ 回到段落的开头处]] 向前移到下一个段落的开头处m(a-z) 用一个字母来标记当前位置,如用mz 表示标记z'(a-z) 将光标移动到指定的标记,如用'z 表示移动到z在vi 中连接行选项作用J 将下一行连接到当前行的末尾nJ 连接后面n 行光标放置与屏幕调整选项作用H 将光标移动到屏幕的顶行nH 将光标移动到屏幕顶行下的第n行M 将光标移动到屏幕的中间L 将光标移动到屏幕的底行nL 将光标移动到屏幕底行上的第n行^e(ctrl+e) 将屏幕上滚一行ctrl+y 将屏幕下滚一行ctrl+u 将屏幕上滚半页ctrl+d 将屏幕下滚半页ctrl+b 将屏幕上滚一页ctrl+f 将屏幕下滚一页ctrl+l 重绘屏幕z-return 将当前行置为屏幕的顶行nz-return 将当前行下的第n 行置为屏幕的顶行z. 将当前行置为屏幕的中央nz. 将当前行上的第n 行置为屏幕的中央z- 将当前行置为屏幕的底行nz- 将当前行上的第n 行置为屏幕的底行vi 中的shell 转义命令选项作用:!command 执行shell 的command 命令,如:!ls:!! 执行前一个shell 命令:r!command 读取command 命令的输入并插入,如:r!ls 会先执行ls,然后读入内容:w!command 将当前已编辑文件作为command 命令的标准输入并执行command 命令,如:w!grep all:cd directory 将当前工作目录更改为directory 所表示的目录:sh 将启动一个子shell,使用^d(ctrl+d)返回vi:so file 在shell 程序file 中读入和执行命令vi 中的宏与缩写(避免使用控制键和符号,不要使用字符K、V、g、q、v、*、= 和功能键)选项作用:map key command_seq 定义一个键来运行command_seq,如:map e ea,无论什么时候都可以e 移到一个字的末尾来追加文本:map 在状态行显示所有已定义的宏:umap key 删除该键的宏:ab string1 string2 定义一个缩写,使得当插入string1 时,用string2 替换string1。

linuxVIM指令

linuxVIM指令

linux下的vim编辑器常用的一些用法操作举例并说明作用。

没有花里胡哨的概念介绍仅以实际的使用方法举例。

一、vim常用快捷键和实用操作vim打开文件方式:**用法1:vim /tmp/myshell.sh表示打开tmp目录下的myshell.sh文件,不存在则创建一个,默认光标会定位到上次所在位置和高亮上次高亮的内容。

用法2:vim +10 /tmp/myshell.sh表示打开tmp目录下的myshell.sh文件并且将光标移动到第10行。

用法3:vim +/hello /tmp/myshell.sh表示打开tmp目录下的myshell.sh文件并且高亮显示文件里所有的hello内容。

用法4:vim /tmp/myshell.sh /home/my.sh /root/a.txt 表示同时打开tmp目录下的myshell.sh、home目录下的my.sh和root目录下的a.txt文件。

vim常用的三种模式:命令模式、编辑模式、末行模式(尾行模式)1.命令模式[命令模式下无法编辑文件,只允许删除,复制,粘贴,撤销,使用快捷键等操作,文件打开时默认进入此模式]光标移动操作:特别技巧:数字+上下左右按键可以向对应方向移动光标到指定位置,如:5+向上键表示是向上移动光标5行。

用法1:shift+6或^表示移动光标到所在行的行首位置。

用法2:shift+4或&表示移动光标到所在行的行尾位置。

用法3:gg表示将光标移动到文件内容的第一行位置,这里注意是小写字母。

表示将光标移动到文件内容的最后一行位置,这里注意是大写字母。

用法5:5G表示将光标移动到文件内容的第5行位置,这里注意是大写字母。

用法6:ctrl+b或pg up表示向上翻屏。

用法7:ctrl+f或pg dn表示向下翻屏。

复制、删除、粘贴、撤销操作:用法1:yy表示复制光标所在行的整行内容。

用法2:5yy表示复制包含光标所在行向下的5行内容。

vim命令大全(好用)

vim命令大全(好用)

vim 命令(全) 收藏vim下查找命令替换命令linux下vim编辑器最常用的命令应该就是查找/替换命令1.查找:\ 输入: /查询字符串然后回车即可2.替换:\ 输入: %s/替换前的字符串/替换后的字符串/g 然后回车即可注:以上替换命令只能替换大小写全匹配的,如果要忽略大小写匹配在g后面加个i即可!替换命令扩展vi/vim 中可以使用:s 命令来替换字符串。

以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。

vi/vim 中可以使用:s 命令来替换字符串。

以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。

:s/vivian/sky/ 替换当前行第一个vivian 为sky :s/vivian/sky/g 替换当前行所有vivian 为sky :n,$s/vivian/sky/ 替换第n 行开始到最后一行中每一行的第一个vivian 为sky :n,$s/vivian/sky/g 替换第n 行开始到最后一行中每一行所有vivian 为sky n 为数字,若n 为 .,表示从当前行开始到最后一行 :%s/vivian/sky/(等同于:g/vivian/s//sky/) 替换每一行的第一个vivian 为sky :%s/vivian/sky/g(等同于:g/vivian/s//sky/g) 替换每一行中所有vivian 为sky 可以使用# 作为分隔符,此时中间出现的/ 不会作为分隔符 :s#vivian/#sky/# 替换当前行第一个vivian/ 为sky/ :%s+/oradata/apras/+/user01/apras1+ (使用+ 来替换/ ):/oradata/apras/替换成/user01/apras1/ * ************************************ 1.:s/vivian/sky/ 替换当前行第一个vivian 为sky :s/vivian/sky/g 替换当前行所有vivian 为sky 2. :n,$s/vivian/sky/ 替换第n 行开始到最后一行中每一行的第一个vivian 为sky :n,$s/vivian/sky/g 替换第n 行开始到最后一行中每一行所有vivian 为sky (n 为数字,若n 为 .,表示从当前行开始到最后一行) 3. :%s/vivian/sky/(等同于:g/vivian/s//sky/) 替换每一行的第一个vivian 为sky :%s/vivian/sky/g(等同于:g/vivian/s//sky/g) 替换每一行中所有vivian 为sky 4. 可以使用# 作为分隔符,此时中间出现的/ 不会作为分隔符 :s#vivian/#sky/# 替换当前行第一个vivian/ 为sky/ 5. 删除文本中的^M 问题描述:对于换行,window下用回车换行(0A0D)来表示,linux下是回车(0A)来表示。

vim命令大全

vim命令大全

vim命令⼤全1. vim模式正常模式(按Esc或Ctrl+[进⼊)左下⾓显⽰⽂件名或为空插⼊模式(按i进⼊)左下⾓显⽰--INSERT--可视模式(按v进⼊)左下⾓显⽰--VISUAL--替换模式(按r或R开始)左下⾓显⽰ --REPLACE--命令⾏模式(按:或者/或者?开始)ex模式没⽤过,有兴趣的同学可以⾃⾏了解2. 打开⽂件# 打开单个⽂件vim file# 同时打开多个⽂件vim file1 file2..# 在vim窗⼝中打开⼀个新⽂件:open [file]【举个例⼦】# 当前打开1.txt,做了⼀些编辑没保存:open! 放弃这些修改,并重新打开未修改的⽂件# 当前打开1.txt,做了⼀些编辑并保存:open 2.txt 直接退出对1.txt的编辑,直接打开2.txt编辑,省了退出:wq再重新vim 2.txt的步骤# 打开远程⽂件,⽐如ftp或者share folder:e ftp://192.168.10.76/abc.txt:e \qadrive\test\1.txt# 以只读形式打开⽂件,但是仍然可以使⽤ :wq! 写⼊vim -R file# 强制性关闭修改功能,⽆法使⽤ :wq! 写⼊vim -M file3. 插⼊命令i 在当前位置⽣前插⼊I 在当前⾏⾸插⼊a 在当前位置后插⼊A 在当前⾏尾插⼊o 在当前⾏之后插⼊⼀⾏O 在当前⾏之前插⼊⼀⾏4. 查找命令最简单的查找/text 查找text,按n健查找下⼀个,按N健查找前⼀个。

text 查找text,反向查找,按n健查找下⼀个,按N健查找前⼀个。

vim中有⼀些特殊字符在查找时需要转义 .*[]^%/?~$:set ignorecase 忽略⼤⼩写的查找:set noignorecase 不忽略⼤⼩写的查找快速查找,不需要⼿打字符即可查找* 向后(下)寻找游标所在处的单词# 向前(上)寻找游标所在处的单词以上两种查找,n,N 的继续查找命令依然可以适⽤精准查找:匹配单词查找如果⽂本中有 hello,helloworld,hellopython那我使⽤ /hello ,这三个词都会匹配到。

Vim命令大全(分类打印版)

Vim命令大全(分类打印版)
执行shell命令
:!command :!ls 列出当前目录下文件 :!perl -c script.pl 检查perl脚本语法,可以不用退出vim,非常方便。 :!perl script.pl 执行perl脚本,可以不用退出vim,非常方便。 :suspend或Ctrl - Z 挂起vim,回到shell,按fg可以返回vim。
退出命令
:wq 保存并退出 ZZ 保存并退出 :q! 强制退出并忽略所有更改 :e! 放弃所有修改,并打开原来文件。
窗口命令
:split或new 打开一个新窗口,光标停在顶层的窗口上 :split file或:new file 用新窗口打开文件
split打开的窗口都是横向的,使用vsplit可以纵向打开窗口。 Ctrl+ww 移动到下一个窗口 Ctrl+wj 移动到下方的窗口 Ctrl+wk 移动到上方的窗口 关闭窗口 :close 最后一个窗口不能使用此命令,可以防止意外退出vim。 :q 如果是最后一个被关闭的窗口,那么将退出vim。 ZZ 保存并退出。 关闭所有窗口,只保留当前窗口 :only 录制宏 按q键加任意字母开始录制,再按q键结束录制(这意味着vim中的宏不可嵌套),使用的时 候@加宏名,比如qa。。。q录制名为a的宏,@a使用这个宏。
拷贝和粘贴
yy 拷贝当前行 nyy 拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。 p 在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。 shift+p 在当前行前粘贴 :1,10 co 20 将1-10行插入到第20行之后。 :1,$ co $ 将整个文件复制一份并添加到文件尾部。 正常模式下按v(逐字)或V(逐行)进入可视模式,然后用jklh命令移动即可选择某些行或 字符,再按y即可复制 ddp交换当前行和其下一行 xp交换当前字符和其后一个字符

vim常用命令集合(精心整理)

vim常用命令集合(精心整理)

vim常⽤命令集合(精⼼整理)vim编辑器⾝为⼀个强⼤的linux平台编辑器,我就不多说他强⼤之处了,直接来简述下常⽤命令,提⾼⾃⼰使⽤编辑器的效率。

然后就先说下vim编辑器的模式,有的地⽅说三种,有的地⽅说两种,教程是按照两种的来的,分别是:普通模式和插⼊模式刚打开编辑器的时候便是普通模式,在这个时候我们输⼊的字符会被解释为命令。

插⼊模式就是,我们输⼊的每个字符都会被写到缓冲区⾥⾯。

要向从插⼊模式退到普通模式,点击ESC键就可以了。

常⽤命令i 进⼊插⼊模式h 左移⼀个字符l 右移⼀个字符k 上移⼀个⾏j 下移⼀⾏PageDown(Ctrl+f)下翻⼀屏数据PageUp (Ctrl+b)上翻⼀屏数据G 移动到缓冲区的最后⼀⾏num + G 移动到缓冲区的第⼏⾏gg 移动到缓冲区的第⼀⾏q 如果缓冲区数据未修改,退出!q! 取消所有对缓冲区数据的修改并退出w filename 将⽂件保存到另⼀个⽂件名下wq! 将缓冲区数据保存到⽂件中并退出x 删除当前光标位置所在的字符dd 删除当前光标所在⾏dw 删除当前光标所在位置的单词d$ 删除当前光标所在位置到⾏尾的字符(⼀⾏)J 删除当前光标所在⾏尾的换⾏符(拼接⾏)u 撤销前⼀条编辑命令a 在当前光标后追加内容A 在当前光标⾏尾追加数据r (char) ⽤char替换给当前光标所在位置的单个字符R text ⽤text覆盖当前光标所在位置的数据,直到按下ESC注意:使⽤命令的时候可以使⽤num+参数的形式以达到多操作的效果例如:2x删除两个字符,2dd删除两⾏粘贴⾸先说明⼀点,vim编辑器在删除数据的时候,他其实是将数据保存在单独的寄存器中,我们可以使⽤p命令来取回数据,(取回的数据被添加到⾏尾)例如:使⽤dd删除⼀⾏⽂本,然后把光标移动到⾃⼰喜欢的位置,点击p,p命令会将⽂本插⼊到当前光标所在⾏之后。

复制复制使⽤的是y命令,y可以和d使⽤相同的第⼆字符(yx复制⼀个字符,y$复制当前位置到⾏尾),复制好内容后,将光标移动到⾃⼰喜欢的位置,输⼊p⽂本就会出现。

linux_vivim)常用命令汇总

linux_vivim)常用命令汇总

linux_vivim)常用命令汇总linux vi(vim)常用命令汇总vim, linux, 命令, 汇总首先介绍一下vim. vi 是unix/linux 下极为普遍的一种文本编辑器, 大部分机器上都有. vi 有各种变种, 在不同的机器上常用不同的变种软件. 其中vim 比较好用也用得比较广泛. vim 是Vi IMproved 的缩写, 表示更好的vi. 本文就说些其中比较有用, 比较常用的命令, 若能熟练运用这些命令, 那么会发现编辑文件很大帮助,尤其是做开发的人员,能快速的提高开发效率.说明:以下的例子中xxx 表示在命令模式下输入xxx 并回车以下的例子中:xxx 表示在扩展模式下输入xxx 并回车小括号中的命令表示相关命令.在编辑模式或可视模式下输入的命令会另外注明.1. 查找/xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示向上查找.其中xxx可以是正规表达式,关于正规式就不多说了.一般来说是区分大小写的, 要想不区分大小写, 那得先输入:set ignorecase查找到以后, 再输入n 查找下一个匹配处, 输入N 反方向查找.*(#) 当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的下(上)一个单词. 同样, 再输入n 查找下一个匹配处, 输入N 反方向查找.g*(g#) 此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词, 而是匹配包含该单词的所有字符串.gd 本命令查找与光标所在单词相匹配的单词, 并将光标停留在文档的非注释段中第一次出现这个单词的地方.% 本命令查找与光标所在处相匹配的反括号, 包括() [] { }f(F)x 本命令表示在光标所在行进行查找, 查找光标右(左)方第一个x字符.找到后:输入; 表示继续往下找输入, 表示反方向查找2. 快速移动光标在vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很方便的进行光标定位和编辑. 因此能更快一点移动光标是很有用的.w(e) 移动光标到下一个单词.b 移动光标到上一个单词.0 移动光标到本行最开头.^ 移动光标到本行最开头的字符处.$ 移动光标到本行结尾处.H 移动光标到屏幕的首行.M 移动光标到屏幕的中间一行.L 移动光标到屏幕的尾行.gg 移动光标到文档首行.G 移动光标到文档尾行.c-f (即ctrl 键与f 键一同按下) 本命令即page down.c-b (即ctrl 键与b 键一同按下, 后同) 本命令即page up.'' 此命令相当有用, 它移动光标到上一个标记处, 比如用gd, * 等查找到某个单词后, 再输入此命令则回到上次停留的位置.'. 此命令相当好使, 它移动光标到上一次的修改行.`. 此命令相当强大, 它移动光标到上一次的修改点.3. 拷贝, 删除与粘贴在vi 中y 表示拷贝, d 表示删除, p 表示粘贴. 其中拷贝与删除是与光标移动命令结合的, 看几个例子就能够明白了.yw 表示拷贝从当前光标到光标所在单词结尾的内容.dw 表示删除从当前光标到光标所在单词结尾的内容.y0 表示拷贝从当前光标到光标所在行首的内容.d0 表示删除从当前光标到光标所在行首的内容.y$ 表示拷贝从当前光标到光标所在行尾的内容.d$ 表示删除从当前光标到光标所在行尾的内容.yfa 表示拷贝从当前光标到光标后面的第一个a字符之间的内容.dfa 表示删除从当前光标到光标后面的第一个a字符之间的内容.特殊地:yy 表示拷贝光标所在行.dd 表示删除光标所在行.D 表示删除从当前光标到光标所在行尾的内容.关于拷贝, 删除和粘贴的复杂用法与寄存器有关, 可以自行查询.4. 数字与命令在vi 中数字与命令结合往往表示重复进行此命令, 若在扩展模式的开头出现则表示行号定位. 如:5fx 表示查找光标后第5 个x 字符.5w(e) 移动光标到下五个单词.5yy 表示拷贝光标以下5 行.5dd 表示删除光标以下5 行.y2fa 表示拷贝从当前光标到光标后面的第二个a字符之间的内容.:12,24y 表示拷贝第12行到第24行之间的内容.:12,y 表示拷贝第12行到光标所在行之间的内容.:,24y 表示拷贝光标所在行到第24行之间的内容. 删除类似.5. 快速输入字符在vi 中, 不要求你输入每一个字符, 可以有很多种方法快速输入一些字符.使用linux/unix 的同学一定有一个经验, 在命令行下输入命令时敲入头几个字符再按TAB 系统就会自动将剩下的字符补齐, 假如有多个匹配则会打印出来. 这就是著名的命令补齐(其实windows中也有文件名补齐功能). vi 中有许多的字符串补齐命令, 非常方便.c-p(c-n) 在编辑模式中, 输入几个字符后再输入此命令则vi 开始向上(下)搜索开头与其匹配的单词并补齐, 不断输入此命令则循环查找. 此命令会在所有在这个vim 程序中打开的文件中进行匹配.c-x-l 在编辑模式中, 此命令快速补齐整行内容, 但是仅在本窗口中出现的文档中进行匹配.c-x-f 在编辑模式中, 这个命令表示补齐文件名. 如输入:/usr/local/tom 后再输入此命令则它会自动匹配出:/usr/local/tomcat/abbr 即缩写. 这是一个宏操作, 可以在编辑模式中用一个缩写代替另一个是麻烦, 所以应该用缩写来减少敲字. 可以这么做:以后在输入sprt后再输入其他非字母符号, 它就会自动扩展为System.out.println6. 替换替换是vi 的强项, 因为可以用正规表达式来匹配字符串.以下提供几个例子.:s/aa/bb/g 将光标所在行出现的所有包含aa 的字符串中的aa 替换为bb:s/\/bb/g 将光标所在行出现的所有aa 替换为bb, 仅替换aa 这个单词:%s/aa/bb/g 将文档中出现的所有包含aa 的字符串中的aa 替换为bb:12,23s/aa/bb/g 将从12行到23行中出现的所有包含aa 的字符串中的aa 替换为bb :12,23s/^/#/ 将从12行到23行的行首加入# 字符:%s= *$== 将所有行尾多余的空格删除:g/^\s*$/d 将所有不包含字符(空格也不包含)的空行删除.7. 多文件编辑在一个vim 程序中打开很多文件进行编辑是挺方便的.:sp(:vsp) 文件名vim 将分割出一个横(纵)向窗口, 并在该窗口中打开新文件.从vim6.0 开始, 文件名可以是一个目录的名称, 这样, vim 会把该目录打开并显示文件列表, 在文件名上按回车则在本窗口打开该文件, 若输入O 则在新窗口中打开该文件, 输入? 可以看到帮助信息.:e 文件名vim 将在原窗口中打开新的文件, 若旧文件编辑过, 会要求保存.c-w-w vim 分割了好几个窗口怎么办? 输入此命令可以将光标循环定位到各个窗口之中.:ls 此命令查看本vim 程序已经打开了多少个文件, 在屏幕的最下方会显示出如下数据:1 %a "usevim.html" 行1622 # "xxxxxx.html" 行0其中:1 表示打开的文件序号, 这个序号很有用处.%a 表示文件代号, % 表示当前编辑的文件,# 表示上次编辑的文件"usevim.html" 表示文件名.行162 表示光标位置.:b 序号(代号) 此命令将指定序号(代号)的文件在本窗口打开, 其中的序号(代号)就是用:ls 命令看到的.:set diff 此命令用于比较两个文件, 可以用:vsp filename命令打开另一个文件, 然后在每个文件窗口中输入此命令,就能看到效果了.8. 宏替换vi 不仅可以用abbr 来替换文字, 也可以进行命令的宏定义. 有些命令输起来很费劲, 因此我把它们定义到- 上, 这样就很方便了.这些配置可以预先写到~/.vimrc(windows 下为$VIM/_vimrc) 中, 写进去的时候不用写前面的冒号.:nmap :nohls 取消被搜索字串的高亮:nmap w 命令模式下转移光标到不同窗口:imap 输入模式下运行:nmap :%s= *$== 删除所有行尾多余的空格.:imap 同上:java 中: (注, 这里为什么说java 中, 因为以下定义对其他文件格式不起作用, 下文会说到如何实现这一点):nmap :comp javac:mak -d . %此命令用javac 编译java 文件, 它会自动将光标定位到出错点. 不过这需要定义一个javac.vim 文件在$VIM/compiler 下, 在javac.vim 里面只有两行字: setlocal makeprg=javacsetlocal errorformat=%A%f:%l:\ %m,%-Z%p^,%-C%.%#:nmap :comp ant:mak此命令用ant 编译java 文件, 它会自动将光标定位到出错点. 一般来说, 安装vim 后已经有了compiler/ant.vim文件, 因此这个命令可以直接使用. 但是需要在当前目录下有build.xml 文件, 当然还必须安装ant 才行.:nmap :cl 此命令用于查看所有的编译错误.:imap:nmap :cc 此命令用于查看当前的编译错误.:imap:nmap :cn 此命令用于跳到下一个出错位置.:imap:nmap :cp 此命令用于跳到上一个出错位置.:imap:nmap :JavaBrowser此命令用于在窗口左部分割出一个新窗口, 里面的内容是java 的资源树, 包括本文件中出现的类, 类的成员变量及成员方法, 就好像JCreator 表现的那样.在这个窗口中输入? 会看到帮助. 嘿嘿, 很好用, 不过需要ctags 支持.:imap9. TABTAB 就是制表符, 单独拿出来做一节是因为这个东西确实很有用.<< 输入此命令则光标所在行向左移动一个tab.>> 输入此命令则光标所在行向右移动一个tab.5>> 输入此命令则光标后5 行向右移动一个tab.:12,24> 此命令将12行到14行的数据都向右移动一个tab.:12,24>> 此命令将12行到14行的数据都向右移动两个tab.那么如何定义tab 的大小呢? 有人愿意使用8 个空格位, 有人用4个, 有的用2个. 有的人希望tab 完全用空格代替, 也有的人希望tab 就是tab. 没关系, vim 能帮助你.以下的设置一般也都先写入配置文件中, 免得老敲.:set shiftwidth=4 设置自动缩进4 个空格, 当然要设自动缩进先.:set sts=4 即设置softtabstop 为4. 输入tab 后就跳了4 格.:set tabstop=4 实际的tab 即为4 个空格, 而不是缺省的8 个.:set expandtab 在输入tab 后, vim 用恰当的空格来填充这个tab.10. autocmd这个命令十分的强大, 可以用这个命令实现对不同的文件格式应用不同的配置; 可以在新建文件时自动添加上版权声明等等. 这些命令一般定义在~/.vimrc 这样的配置文件里面. 由于他很强大, 所以我不能给出很具体的说明, 只能举几个例子, 详细的请看帮助.:autocmd! 删除所有之前的自动命令.autocmd FileType java source ~/.vim/files/java.vimautocmd FileType java source ~/.vim/files/jcommenter.vim 以上两条命令让我在打开java 文件时才应用后面提到的两个配置文件.autocmd BufNewFile *.java 0r ~/.vim/files/skeletons/java.skel 以上这条命令让我在新建java 文件时自动加入java.skel 文件的内容.autocmd BufNewFile *.java normal gnp以上这条命令让我在新建java 文件时自动运行gnp 命令, 这个命令进行一些特殊化处理, 比如将新java 文件中的__date__ 替换成今天的日期什么的.11. 常用脚本我常用的有:jcommenter.vim 自动加入javadoc 风格的注释.JBrowser.vim 类资源浏览. C, C++ 等可以用Tlist还有许多有用的, 比如checkstyle.vim 可以检验你的编程风格, jad.vim 可以直接反编译 .class 文件等等.12. 常用配置在~/.vimrc 配置文件中你常常需要一些个性化配置. 比如上面写的一些宏定义, 一些autocmd 定义等等. 比如:setsuffixes=.bak,~,.o,.h,.info,.swp,.aux,.bbl,.blg,.dvi,.lof,.log,.lot,.ps,.t oc 这样在vim中打开文件时, 按tab 键补齐文件名时它会忽略上述文件.set nu 显示行号set ai 设置自动缩进map Y y$ 让Y 和D 一样, 要不然Y 的本意和yy 一样.13. 其他还有许多有意思的命令, 记录在这里免得忘记.. 重复上次编辑命令.:g/^/exec "s/^/".strpart(line(".")." ", 0, 4) 在行首插入行号:runtime! syntax/2html.vim 转换txt 成html, 会按照你的颜色配置来转。

vim编辑器常用命令大全入门Linux必备

vim编辑器常用命令大全入门Linux必备

vim编辑器常用命令大全入门Linux必备在linux系统中,一切都是文件,而配置一项服务就是修改其配置文件的参数。

而且在日常的工作中免不了要编写各种文档,这些编辑工作都是通过文本编辑器完成的。

vim编辑器是所有的linux发行版都会内置的编辑器,其操作简单,功能强大,是一款非常棒的文本编辑器。

vim编辑器有三种模式命令模式: 控制光标移动,可对文本进行复制,粘贴,删除和查找等操作输入模式 : 正常的文本输入末行模式 : 保存或退出文档,以及设置编辑器环境在命令模式下,输入a,i,o等键进入到输入模式,在输入模式下,按Esc键返回到命令模式,在命令模式下按 : 键进入到末行模式。

各种模式切换的方法如下图命令模式下一些常用的命令dd: 删除(剪切)光标所在的一行5dd: 删除(剪切)光标处开始的5行yy: 复制光标所在的一行5yy: 复制光标处开始的5行n: 显示搜索命令定位到的下一个字符串N: 显示搜索命令定位到的上一个字符串u: 撤销上一步的操作p: 将之前剪切或复制的数据粘贴到光标后面末行模式下一些常用的命令:w保存:q退出:q!强制退出(放弃对文档内容的修改):wq!强制保存退出:set nu显示行号:set nonu不显示行号:命令执行该命令:整数跳转到该行:s/one/two将光标所在行的第一个one替换成two :s/one/two/g将光标所在行的所有one替换成two :%s/one/two/g将全文中所有的one替换成two 字符串在文本中从下到上搜索该字符串/字符串在文本中从上到下搜索该字符串最后放上一张vim编辑器命令全图:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
只对1,3行有效,如无前缀,只对当前行有效 表达式: .
代替一个字符 *
表示一个或多个字符的重复 /d.*an
可以匹配 dan, divan, debian 单
词边界: 指定单词边界: \< 和 \> 如: /\<d[a-z]*an\>
匹配以d开始,中间包含任意个小写字母,以an结束的单词 /\$[0-9]*\.[0-9][0-9]
跳到下一个jump point ctrl+o
跳到上一个jump point 23gg, 23G, :23
跳到第23行 ctrl+i, tab
跳到下一个跳点(Jump Point) ctrl+o
跳到上一个跳点 查找替换: #
从光标向后查找整个关键词 *
从光标向前查找整个关键词 g#
匹配查找 $XX...X.XX这要的数字,有且只有两位小数的
常用的编辑命令: a, i
在光标后插入, 在光标前插入 dd
删除一行 cc,S
删除一行后进入insert模式 dw
删除一个单词 cw
删除一个单词后进入insert模式 x,dl
删除一个字符 s,cl
删除一个字符后进入insert模式 p
光标移动:四个方向 k h 0 l j ctrl+f, ctrl+b
向下翻页,向上翻页 ctrl+d, ctrl+u 向下半翻页,向上半翻页 $
移动行尾 0
移动行首 w
移动下一个词 b
移动到上一个词 gg
跳到文档的开始处 G
跳到文档的末尾 %
跳到匹配的括号处("{ }""[]""()") ctrl+i,tab
在新窗口中打开filename :close
关闭当前窗口 :only
关闭除当前窗口外所有窗口 :ctrl-w h
到左面的窗口 :ctrl-w j 到下面的窗口 :ctrl Nhomakorabeaw k
到上面的窗口 :ctrl-w l
到右面的窗口 :ctrl-w t
到顶部的窗口 :ctrl-w b
到底部的窗口 重复操作(宏操作): q[a-z]
开始记录操作,记录到寄存器[a-z]中 q
停止记录操作 @[a-z]
执行寄存器中的操作 @@
执行最近寄存器中记录的操作例子: 一个缓冲区有两行: sys/types.h stdio.h -->要改为: #include #include 操作如下: qa #开始记录 ^ #移动行首 i #进入insert模式 #include < #输入内容 $ #移动行尾 i #进入insert模式 > #输入内容 q #停止记录 移动另一行: @a即可执行相同的操作 Visual Mode操作: ctrl+v 进入基于块的可视模式 v 进入基于字符的可视模式 V 进入基于行的可视模式 c 删除选定的块 I{string} 选定块后按大写的I,输入字符串,再按ESC,可以在块内每一行插入相同的内容 跳到声明处: [[ 向前跳到顶格的第一个"{" [] 向前跳到顶格的第一个"}" ][ 向后跳到顶格的第一个"{" ]] 向后跳到顶格的第一个"}" [{ 跳到本代码块(由{}界定)的开头 [} 跳到本代码块的结尾 Shell: :ctrl+z/suspend 在shell下是挂起vim; gui下是最小化窗口 :!{command} 执行shell命令 :shell 开一个新的shell 保存vim状态(挂起?): :mksession session.vim 保存当前vim状态 :source session.vim 回复vim状态 vim -S session.vim 启动vim时恢复session 高效率移动在插入模式之外基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面VIM就像一个“哑巴”编辑器一样。很多新手都会一直呆在插入模式里面,因为这样易于使用。但VIM的强大之处在于他的命令行模式!你会发现,在你越来越了解VIM之后,你就会花越来越少的时间使用插入模式了。 使用 h,j,k,l 使用VIM高效率编辑的第一步,就是放弃使用箭头键。使用VIM,你就不用频繁的在箭头键和字母键之间移来移去了,这会节省你很多时间。当你在命令模式时,你可以用h,j,k,l来分别实现左,下,上,右箭头的功能。一开始可能需要适应一下,但一旦习惯这种方式,你就会发现这样操作的高效之处了。在你编辑你的电子邮件或者其他有段落的文本时,你可能会发现使用方向键和你预期的效果不一样,有时候可能会一次跳过了很多行。这是因为你的段落在VIM看来是一个大的长长的行。这时你可以在按h,j,k或者l 之前键入一个g,这样VIM就会按屏幕上面的行如你所愿的移动了。在当前行里面有效的移动光标很多编辑器只提供了简单的命令来控制光标的移动(比如左,上,右,下,到行首/尾等)。VIM则提供了很多强大的命令来满足你控制光标的欲望。当光标从一点移动到另外一点,在这两点之间的文本(包括这两个点)称作被“跨过”,这里的命令也被称作是motion。(简单说明一下,后面会用到这个重要的概念) 这里是常用到的一些命令(motion): fx:移动光标到当前行的下一个x处。很明显,x可以是任意一个字母,而且你可以使用;来重复你的上一个f命令。 tx:和上面的命令类似,但是是移动到x的左边一个位置。(这真的很有用) Fx:和fx类似,不过是往回找。 w:光标往前移动一个词。 b: 光标往后移动一个词。 0: 移动光标到当前行首。 ^:移动光标到当前行的第一个字母位置。 $: 移动光标到行尾。 ):移动光标到下一个句子。 ( : 移动光标到上一个句子。 在整个文件里面有效移动光标 VIM有很多命令,可以用来到达文件里面你想到达的地方。下面是一些在文件里面移动的命令: :向下移动一屏。 :向上移动一屏。 G:到文件尾 numG:移动光标到指定的行(num)。(比如10G就是到第10行) gg:到文件首 H:移动光标到屏幕上面 M:移动光标到屏幕中间 L:移动光标到屏幕下面 *:读取光标处的字符串,并且移动光标到它再次出现的地方。 #:和上面的类似,但是是往反方向寻找。 /text:从当前光标处开始搜索字符串text,并且到达text出现的地方。必须使用回车来开始这个搜索命令。如果想重复上次的搜索的话,按n。?text:和上面类似,但是是反方向。 ma:在当前光标的位置标记一个书签,名字为a。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。 `a:到书签a处。注意这个不是单引号,它一般位于大部分键盘的1的左边。 `.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。 高效的输入 使用关键词自动完成 VIM 有一个非常漂亮的关键词自动完成系统。这表示,你可以输入一个长词的一部分,然后按一下某个键,然后VIM就替你完成了这个长词的输入了。举个例子:你有一个变量名为 iAmALongAndAwkwardVarName 在你写的代码的某个地方。也许你不想每回都自己一个一个字母的去输入它。 使用关键词自动完成功能,你只需要输入开始几个字母(比如iAmAL),然后按(按住Ctrl,再按N)或者。如果VIM没有给出你想要的词,基本按,直到你满意为止,VIM会一直循环它找到的匹配的字符串。 聪明的进入插入模式很多新手进入插入模式都只是用i。这样当然可以进入插入模式,但通常不是那么合适,因为VIM提供了很多进入插入模式的命令。下面是最常用的一些: i:在当前字符的左边插入 I:在当前行首插入 a:在当前字符的右边插入 A:在当前字符的左边插入
粘贴 xp
交换两个字符 ddp
交换两行 y
复制 yy
复制一行 u
撤消 ctrl+r 重做 .
重复上一次修改 ctrl+r 重做 .
重复上一次修改 划分窗格: :split/vsplit
分隔一个窗口 :new/vnew
创建一个新的窗口 :sf {filename}
从光标向后查找关键词 g*
从光标向前查找关键词 fx,tx,Fx,Tx
在当前行查找字符 查找替换例子: : s/SEARCH/REPLACE : s/If/Since
将下一个"If"换成"Since" : %s/If/Since
将全部"If"换成"Since" : 1,3 s/If/Since/g
相关文档
最新文档