掌握linux下vim与复制,删除,粘贴,块操作以及快速替换功能
掌握如下命令有什么好办法,我可以告诉你唯手熟尔!! 多看多练 对于VIM而言,复制,删除,粘贴的操作应该是非常多的。这次也做一个总结,关于处理VIM下的复制,删除,粘贴等操作。 学会使用帮助文件,命令的帮助入口,就是” :help 命令名“。例如,对于” j“命令,查看它的帮助,使用” :help j“ 先谈一下基于块的复制,删除,粘贴操作 使用块选的好处: 对于vim几乎提到的都是以行为单位的操作。那么如果我想要搞定的是一个区块范围呢(我特别喜欢像使用windows下的文本编辑器一样去使用块的选择 当我们按下 v 戒者 V 戒者 [Ctrl]+v 时, 这个时候光标移劢过癿地方就会开始反白。 区块选择的按键意义【不使用鼠标,来选择块】 v 字符选择,会将光标经过癿地方反白选择! V(大写) 行选择,会将光标经过癿行反白选择!(常用,配合上下左右键,进行区域选择,很爽!!!) [Ctrl]+v 区块选择,可以用长方形癿方式选择资料 y 将反白癿地方复制起来 d 将反白癿地方删除掉 批量替换列块 原始状态: 将光标指到第一行V处,然后ctrl-v选择,如下 选择完成后,接着按c键,输入你要替换后的文字,最后ESC,看看成果如下, 以行或者是以单词为单位的删除操作 对字符操作: x, X 在一行字当中,x 为向后删除一个字符 (相当亍 [del] 按键),X为向前删除一个字符(相当亍 [backspace] 亦即是退格键) (常用) nx n 为数字,连续向后删除 n 个字符。丼例来说,我要连续删除 10 个字符, 『10x』。 d$ 删除游标所在处,到该行行尾的所有字符 d0 删除游标所在处 ,到该行行首的所有字符 对行操作: dd 删除游标所在的那一整列(常用) ndd n 为数字。删除光标所在的行向下n行,例如 20dd 则是删除 20行 (常用) d1G 删除光标所在到第一行的所有数据 dG 删除光标所在到最后一行的所有数据 与移动相关 移动到行首:gg 移动到行尾 :字符$ 小注:命令”G“前可以加上数字,在这里,数字的含义并不是倍数,而是你打算跳转的行号。例如,你想跳转到文件的第1234行,只需输入”1234G“。 字符0:第一个非空字符前 字符^:第一个非空字符上 上下左右:h, j, k, l 小注:如同许多vim命令一样,可以在这些键前加一个数字,表示移动的倍数。例如,”10j“表示向下移动10行;”10l“表示向右移动10列。 翻页: 小注:通常使用CTRL-B和CTRL-F来进行翻页,它们的功能等同于PageUp和PageDown。CTRL-B和CTRL-F前也可以加上数字,来表示向上或向下翻多少页 小注: 在文件中移动,你可能会迷失自己的位置,这时使用”CTRL-G“命令,查看一下自己位置。这个命令会显示出光标的位置及其它信息。为了避免迷失,你可以打开行号显示;使用”:set number“命令后,会在每一行前显示出行号,可以更方便的定位的跳转(:help ‘number’) 移动到指定字符:使用f, t, F, T命令。 小注:“f“命令移动到光标右边的指定字符上,例如,”fx“,会把移动到光标右边的第一个’x'字符上。”F“命令则反方向查找,也就是移动到光标左边的指定字符上。 “t“命令和”f“命令的区别在于,它移动到光标右边的指定字符之前。例如,”tx“会移动到光标右边第一个’x'字符的前面。”T“命令是”t“命令的反向版本,它移动到光标右边的指定字符之后。 这四个命令只在当前行中移动光标,光标不会跨越回车换行符。 可以在命令前面使用数字,表示倍数。例如,”3fx“表示移动到光标右边的第3个’x'字符上。 “;“命令重复前一次输入的f, t, F, T命令,而”,“命令会反方向重复前一次输入的f, t, F, T命令。这两个命令前也可以使用数字来表示倍数。 与复制相关 yy 复制游标所在癿那一行(常用) y1G 复制光标所在列到第一列癿所有数据 yG 复制光标所在列到最后一列癿所有数据 y0 复制光标所在癿那个字符到该行行首癿所有数据 y$ 复制光标所在癿那个字符到该行行尾癿所有数据 复原以及重做操作 u 复原前一个劢作。(常用) [Ctrl]+r 重做上一个动作。(常用) 替换模式 关键是 “R “ 取代模式,它可以快速的替换以及插入数据(类似于 word中的 即点即输)的功能。 移动光标 命令 功能 h 光标左移 l(或空格键) 光标右移 k(或[Ctrl+p]) 光标上移 j(或[Ctrl+n]) 光标下移 [Ctrl+f] 向前翻页 [Ctrl+b] 向后翻页 [Ctrl+d] 向前翻半页 [Ctrl+u] 向后翻半页 1G 跳到文件首 40G 跳到第40行 G 跳到文件尾 [Ctrl+g] 显示当前行号及文件的百分比 :set number 显示所有带行号的行 在一行内移动光标 B、E和W命令的作用与b、e和w的作用一样,只是后者忽略了标点符号。 命令 功能 b 向后移动到单词首 e 向前移动到单词尾 w 向前移动到单词首 0或| 移动到行首 30| 移动到第30列 ^ 移动到本行的第一个单词的首字符 $ 移动到行尾 插入文本 命令 功能 i 在光标的左侧插入字符 20i-[Esc] 插入20个连字符 I 在行首插入字符 [Ctrl+v][Ctrl+b] 插入[Ctrl+b]字符 [Ctrl+v][Esc] 插入[Esc]字符 a 在光标的右侧添加文本 A 在行尾添加文本 o 在当前行下面插入一空行 O 在当前行上面插入一空行 :set showmode 当vi处在输入模式下时显示提示信息 :set sm 即时显示配对的)或} :set ts=n 把制表符设置为n(默认为8) :set ai 下一行从前一行的缩进位置开始 删除和移动文本 命令 功能 x 删除光标所在的字符 6x 删除光标位置的字符以及右侧的5个字符 X 删除前一个字符 dd 删除当前行 4dd 删除4行 64dd 删除64行 dw 删除一个单词 d0 删除到行首 d$ 删除到行尾 d 删除一个区域(只用于vim) p 把被剪切的文本粘贴到下面(整行)或右侧(部分行) P 把被剪切的文本粘贴到上面(整行)或左侧(部分行) "add 把当前行粘贴到缓冲区a里 "ap 把缓冲区a里的内容粘贴到当前位置 J 把当前行于下一行合并为一行 xp 调换两个字符的位置 修改文本 命令 功能 rch 把光标位置的字符替换为ch R 替换光标右边的文本 s 把光标所在的字符替换为任意个字符 S 替换整行内容 cw 修改一个单词 c 修改区域里的文本(vim) ~ 改变所扫描的或区域里的字母的大小写 !tr'[a-z]''[A-Z]' 把区域里的字母转换为大写(vim) !tr'[A-Z]''[a-z]' 把区域里的字母转换为小写(vim) 复制文本 命令 功能 yy 复制当前行 6yy 复制六行 yw 复制单词 y 复制区域(vim) p 把复制的文本粘贴到右边或下面 P 把复制的文本粘贴到左边或上面