VIM命令小结 启动vi命令 删除和修改文本 命令 功能 Normal模式,命令前可以添加重复因子,c表示任意字符。 Vi filename 从第一行开始编辑filename文件 命令作用 vi+n filename 从第n行开始编辑filename文件 nx 删除从当前字符开始的个字符(含当前字符) vi+filename 从最后一行开始编辑filename文件 nX 删除从当前字符前面的n个字符(不含当前字符) vi +/pattern filename 从包含pattern的第一行开始编辑 ndd 删除当前行开始的n行 vi-r filename 在系统崩溃之后恢复filename文件 do 删除到行首 vi-R filename 以只读方式编辑filename文件 D、ds删除到行尾 dw 删除一个单词。若光标处在某个词的中间,则从光 光标移动命令Normal模式,命令前可加上一个重复因子 标所在位置开始删至词尾 命令 功能 dtc 删除到位于当前行的下一个字符c SPACE、I、右向箭头 光标向右移动一格 n 改变从当前字符开始的n个字符的大小写 BACKSPACE、h、左向箭头光标向左移动一格 下面命令使vim处于Insert模式,按Esc键回Normal模式 k、向上箭头 光标向上移动一行,光标列向位置不变 ns 替换由n所指定数目的字符 光标移到上面一行的开始 s 替换整行 j小向下箭头 光标向下移动一行,光标列向位置不变 ncc 修改由n所指定数目的行 +RETURN 光标移到下面一行的开始 ctc 修改到位于当前行的下一个字符c 、0 光标移到所在行的开始 修改到行尾 光标移到所在行的末尾 光标右移一个单词 复制与粘贴Normal模式,可以添加重复因子 W 右移一个以空格作为分隔符的单词 命令 作用 b 光标左移一个单词 yy、nY 复制当前行开始的n行 B 左移一个以空格作为分隔符的单词 yo 复制至行首,不含光标所在处字符。 e 光标右移到一个单词的结尾 yS 复制至行尾,含光标所在处字符 E 右移一个以空格作为分隔符的单词结尾 nyw 复制n个word (/) 光标移到本句下一句的开始 yG 复制至文件尾,包含当前行 L11 光标移到本节下一节的开始 ylG 复制至文件首,包含当前行 {} 光标移到本段下一段的开始 p 粘贴至光标后,若整行复制则贴在当前行下面 $ 光标移到文件末尾 粘贴至光标前,若整行复制则贴在当前行上面 光标按屏幕移动部分命令前可加上一个重复因子 搜索字符串表中rxp是正则表达式,可以是单个字符串 命令 功能 命令 作用 Ctrl+d 向前移动半个屏幕 rexp回车 向前搜索rexp Ctrl+u 向后移动半个屏幕 ?rexp回车 向后搜索rexp Ctrl+f 向前移动一个屏幕 n 重复最近一次的搜索 Ctrl+b 向后移动一个屏幕 N 重复最近一次的搜索,但搜索方向相反 nG 光标移到第n行,不指定n,则移到最后一行 /回车 向前重复最近一次的搜索 H/M/L光标移到屏幕顶部/中部/底部 ?回车 向后重复最近一次的搜索 % 可以查找配对的括号)、、} 添加文本所有命令(除r命令外)都使vi处于Insert模式, 必须按Esc键才能回到Normal模式 其它命令 命令 文本添加位置 命令 作用 i/I 在光标前/在该行的第一个非空白字符前 J 将当前行和下面一行连接起来 a/A 在光标后/所在行的行尾 重复上一次有效命令 0/0 在当前行的下面/上面新建一行 U 取消对整行的所有修改操作 r 替换当前字符(一次只能替换一个) 取消上一次操作,可连续使用 R 替换从当前字符开始的字符,直到按Esc键为止 Ctrl+r 取消上一次的取消命令u,可连续使用 替换字符串替换命令的一般格式为 :W 将工作缓存区内容写入当前文件 :w fname 将工作缓存区内容写入由fname指定的文件 :[address]s/old/rew[/cg] :q/:q! 退出vi/强行退出vi 命令中的元素 含义 :wq 存盘退出 address 一个搜索字符串、一个行编号或是一个 ZZ 将工作缓存区内容写入当前文件并退出 例: 由逗号分隔的两个行号。其中“”表示当 作用同ZZ :s/old/new 前行,“$”表示最后一行,%”表示整个 :r fname 插入文件mame中的内容 :.,Ss/old/new/g 文件。用户可以使用标记或搜索字符串 :sp fname 切分新窗口,打开指定文件,用ctr+ww切换 :%s/old/new/gc 来代替行号。 Ctrl+p/n Insert模式下,向上下搜索,补全一个词 old 被替换的字符串 Ctrl+xl Insert模式补全一行,ctrl+pln选择上/下一个匹配 new 替换字符串 :!bash 打开bash,退出后自动回到vim 替换前要求确认 "op 提取寄存器n(1~9)中的内容 指定一个全局替换(每行不止替换一处) :n/:N 同时打开多个文件时,在文件之间切换
VIM 命令小结 启动 vi 命令 命令 功能 Vi filename 从第一行开始编辑 filename 文件 vi +n filename 从第 n 行开始编辑 filename 文件 vi + filename 从最后一行开始编辑 filename 文件 vi +/pattern filename 从包含 pattern 的第一行开始编辑 vi –r filename 在系统崩溃之后恢复 filename 文件 vi –R filename 以只读方式编辑 filename 文件 光标移动命令 Normal 模式,命令前可加上一个重复因子 光标按屏幕移动 部分命令前可加上一个重复因子 添加文本 所有命令(除 r 命令外)都使 vi 处于 Insert 模式, 必须按 Esc 键才能回到 Normal 模式 替换字符串 替换命令的一般格式为 :[address]s/old/rew[/cg] 命令中的元素 含义 address 例: :s/old/new :.,$s/old/new/g :%s/old/new/gc 一个搜索字符串、一个行编号或是一个 由逗号分隔的两个行号。其中“.”表示当 前行,“$”表示最后一行,“%”表示整个 文件。用户可以使用标记或搜索字符串 来代替行号。 old 被替换的字符串 new 替换字符串 c 替换前要求确认 g 指定一个全局替换(每行不止替换一处) 命令 功能 SPACE、l、右向箭头 光标向右移动一格 BACKSPACE、h、左向箭头 光标向左移动一格 k、向上箭头 光标向上移动一行,光标列向位置不变 - 光标移到上面一行的开始 j、向下箭头 光标向下移动一行,光标列向位置不变 +,RETURN 光标移到下面一行的开始 ^、0 光标移到所在行的开始 $ 光标移到所在行的末尾 w 光标右移一个单词 W 右移一个以空格作为分隔符的单词 b 光标左移一个单词 B 左移一个以空格作为分隔符的单词 e 光标右移到一个单词的结尾 E 右移一个以空格作为分隔符的单词结尾 ( / ) 光标移到本句/下一句的开始 [[ / ]] 光标移到本节/下一节的开始 { / } 光标移到本段/下一段的开始 :$ 光标移到文件末尾 命令 功能 Ctrl+d 向前移动半个屏幕 Ctrl+u 向后移动半个屏幕 Ctrl+f 向前移动一个屏幕 Ctrl+b 向后移动一个屏幕 nG 光标移到第 n 行,不指定 n,则移到最后一行 H/ M/ L 光标移到屏幕顶部 / 中部 / 底部 命令 文本添加位置 i / I 在光标前 / 在该行的第一个非空白字符前 a / A 在光标后 / 所在行的行尾 o / O 在当前行的下面 / 上面新建一行 r 替换当前字符(一次只能替换一个) R 替换从当前字符开始的字符,直到按 Esc 键为止 删除和修改文本 Normal 模式,命令前可以添加重复因子,c 表示任意字符。 命令 作用 nx 删除从当前字符开始的 n 个字符(含当前字符) nX 删除从当前字符前面的 n 个字符(不含当前字符) ndd 删除当前行开始的 n 行 d0 删除到行首 D、d$ 删除到行尾 dw 删除一个单词。若光标处在某个词的中间,则从光 标所在位置开始删至词尾 dtc 删除到位于当前行的下一个字符 c n~ 改变从当前字符开始的 n 个字符的大小写 下面命令使 vim 处于 Insert 模式,按 Esc 键回 Normal 模式 ns 替换由 n 所指定数目的字符 S 替换整行 ncc 修改由 n 所指定数目的行 ctc 修改到位于当前行的下一个字符 c C 修改到行尾 复制与粘贴 Normal 模式,可以添加重复因子 命令 作用 nyy、nY 复制当前行开始的 n 行 y0 复制至行首,不含光标所在处字符。 y$ 复制至行尾,含光标所在处字符 nyw 复制 n 个 word yG 复制至文件尾,包含当前行 y1G 复制至文件首,包含当前行 p 粘贴至光标后,若整行复制则贴在当前行下面 P 粘贴至光标前,若整行复制则贴在当前行上面 搜索字符串 表中 rexp 是正则表达式,可以是单个字符串 命令 作用 /rexp 回车 向前搜索 rexp ?rexp 回车 向后搜索 rexp n 重复最近一次的搜索 N 重复最近一次的搜索,但搜索方向相反 / 回车 向前重复最近一次的搜索 ? 回车 向后重复最近一次的搜索 % 可以查找配对的括号 )、]、} 其它命令 命令 作用 J 将当前行和下面一行连接起来 . 重复上一次有效命令 U 取消对整行的所有修改操作 u 取消上一次操作,可连续使用 Ctrl+r 取消上一次的取消命令 u,可连续使用 :w 将工作缓存区内容写入当前文件 :w fname 将工作缓存区内容写入由 fname 指定的文件 :q / :q! 退出 vi / 强行退出 vi :wq 存盘退出 ZZ 将工作缓存区内容写入当前文件并退出 :x 作用同 ZZ :r fname 插入文件 fname 中的内容 :sp fname 切分新窗口,打开指定文件,用 ctrl+ww 切换 Ctrl+p/n Insert 模式下,向上/下搜索,补全一个词 Ctrl+xl Insert 模式补全一行,ctrl+p/n 选择上/下一个匹配 :!bash 打开 bash,退出后自动回到 vim ”np 提取寄存器 n(1~9)中的内容 :n / :N 同时打开多个文件时,在文件之间切换