掌握如下命令有什么好办法,我可以告诉你唯手熟尔!!多看多练
对于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-BCTRL-F来进行翻页,它们的功能等同于PageUp和PageDown。CTRL-BCTRL-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 把复制的文本粘贴到左边或上面

转载:vim的复制,删除,粘贴,块操作以及快速替换功能的更多相关文章

  1. (一)、vim及gvim添加多行注释及删除多行注释块操作

    一.添加多行注释 选中要注释的行(连续的多行): Ctrl + v进入块选择模式: 按住I(大写)进入行首插入模式: 插入注释符: 按Esc回到命令模式. 或者 1.   进入命令行模式,按ctrl ...

  2. VC++ MFC文件的移动复制删除更名遍历操作

    1.判断文件是否存在 利用CFile类和CFileStatus类判断 CFileStatus filestatus; if (CFile::GetStatus(_T("d://softist ...

  3. vim的寄存器和剪贴簿操作?

    vim 复制/ 删除 多行? 有确定序号的行: :10,15m20, 10,15co20 没有确定序号的行: ndd, nyy. 其中的n表示, 从当前行开始算起(当前行本身要包含!!!), 向下共删 ...

  4. vim中使用系统粘贴板

    在vim中如果想使用系统粘贴板,也就是说,如果你在其他程序中复制内容,那么使用shift+insert组合键就可以粘贴进来. 需要说明的是,vim中的粘贴板有很多,你可以输入 :reg来进行查看.而我 ...

  5. Qt之密码框不可选中、复制、粘贴、无右键菜单等

    简述 在做用户登录.修改密码的时候,往往会用到密码框,其中一些功能要求与普通的输入框不同,例如:不能选中.复制.粘贴.无右键菜单等功能,当然设置密码不可见是必须的! 下面介绍两种方式来实现相同的效果. ...

  6. 【Qt】Qt之密码框不可选中、复制、粘贴、无右键菜单等【转】

    简述 在做用户登录.修改密码的时候,往往会用到密码框,其中一些功能要求与普通的输入框不同,例如:不能选中.复制.粘贴.无右键菜单等功能,当然设置密码不可见是必须的! 下面介绍两种方式来实现相同的效果. ...

  7. Qt 密码框不可选中、复制、粘贴、无右键菜单等

    在做用户登录.修改密码的时候,往往会用到密码框,其中一些功能要求与普通的输入框不同. 例如:不能选中.复制.粘贴.无右键菜单等功能,当然设置密码不可见是必须的! 一般的密码框:(默认 可以选中,复制, ...

  8. Java递归实现操作系统文件的复制、粘贴和删除功能

    通过Java IO递归实现操作系统对文件的复制.粘贴和删除功能,剪切=复制+粘贴+删除 代码示例: import java.io.BufferedInputStream; import java.io ...

  9. iOS——文件操作NSFileManager (创建、删除,复制,粘贴)

    iOS——文件操作NSFileManager (创建.删除,复制,粘贴)       iOS的沙盒机制,应用只能访问自己应用目录下的文件.iOS不像android,没有SD卡概念,不能直接访问图像.视 ...

随机推荐

  1. Java里面类型转换总结

    1.String 转 int int i = Integer.valueOf(my_str).intValue(); int i = Integer.parseInt(str); 2.String 转 ...

  2. linux ping IP地址与telnet 测试IP端口

    ping命令是不能够测试端口的,ping只是测试网络联接状况以及信息包发送和接收状况. 格式:ping IP地址或主机名 [-t] [-a] [-n count] [-l size] 参数含义:-t不 ...

  3. 【Linux】linux bash shell之变量替换::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法

    linux bash shell之变量替换::=句法.=句法.:-句法.-句法.=?句法.?句法.:+句法.+句法   linux bash shell之变量替换::=句法.=句法.:-句法.-句法. ...

  4. 使用notepad++进行替换

    将 aaa bbb ccc 转化为 #define AAA aaa #define BBB bbb #define CCC ccc 查找(.*),替换为#define $1 "$1" ...

  5. 9款HTML5实现的超酷特效

    之前我们推荐了8款HTML5实现的特效和应用,今天我们带来的这9款热门的HTML5特效同样会带给你全新的视角和体验. HTML5是HTML的升级版,HTML5有两大特点:首先,强化了 Web 网页的表 ...

  6. iPhone真机调试流程

    大致流程:绑定设置ID--绑定电脑---绑定appbundle ID mac----钥匙串----证书助理-----从证书机构请求颁发证书-----填写邮件----生成证书到桌面 数据线连接设备--- ...

  7. VMware 9.0.1安装Mac OS X Mountain Lion 10.8.2

    原地址:http://zengwu3915.blog.163.com/blog/static/278348972013117114742496/ 所需软件1.VMware Workstation Bu ...

  8. ant design 中的 Select 组件常规写法

    1.代码 import { Select, Spin } from 'antd'; const Option = Select.Option; <Select allowClear showSe ...

  9. vim 查找和替换命令 替换/n和\n

    一. 字符串的查找 1. vim 中用 / 和 ? 来查找字符串,两者的区别是: /string 会高亮显示光标后匹配的第一个字符串,回车后光标移到该字符串的第一个字母: ?string 会高亮显示光 ...

  10. Node.js 使用JWT进行用户认证

    代码地址如下:http://www.demodashi.com/demo/13847.html 运行环境 该项目基于 node(v7.8.0版本以上) 和 mongodb 数据库,因此电脑上需要安装这 ...