删除一行:dd

删除一个单词/光标之后的单词剩余部分:dw

删除当前字符:x

光标之后的该行部分:d$

文本删除

dd 删除一行

d$ 删除以当前字符开始的一行字符

ndd 删除以当前行开始的n行

dw 删除以当前字符开始的一个字

ndw 删除以当前字符开始的n个字

D 与d$同义

d) 删除到下一句的开始

d} 删除到下一段的开始

d回车 删除2行

ndw 或 ndW 删除光标处开始及其后的 n-1 个字符。
d0 删至行首。
d$ 删至行尾。
ndd 删除当前行及其后 n-1 行。
x 或 X 删除一个字符。
Ctrl+u 删除输入方式下所输入的文本。
^R 恢复u的操作
J 把下一行合并到当前行尾
V 选择一行
^V 按下^V后即可进行矩形的选择了
aw 选择单词
iw 内部单词(无空格)
as 选择句子
is 选择句子(无空格)
ap 选择段落
ip 选择段落(无空格)
D 删除到行尾
x,y 删除与复制包含高亮区

dl 删除当前字符(与x命令功能相同)
d0 删除到某一行的开始位置
d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符)
dw 删除到某个单词的结尾位置
d3w 删除到第三个单词的结尾位置
db 删除到某个单词的开始位置
dW 删除到某个以空格作为分隔符的单词的结尾位置
dB 删除到某个以空格作为分隔符的单词的开始位置
d7B 删除到前面7个以空格作为分隔符的单词的开始位置
d) 删除到某个语句的结尾位置
d4) 删除到第四个语句的结尾位置
d( 删除到某个语句的开始位置
d) 删除到某个段落的结尾位置
d{ 删除到某个段落的开始位置
d7{ 删除到当前段落起始位置之前的第7个段落位置
dd 删除当前行
d/text 删除从文本中出现“text”中所指定字样的位置,
一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容
dfc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容
dtc 删除当前行直到下一个字符“c”所出现位置之间的内容
D 删除到某一行的结尾
d$ 删除到某一行的结尾
5dd 删除从当前行所开始的5行内容
dL 删除直到屏幕上最后一行的内容
dH 删除直到屏幕上第一行的内容
dG 删除直到工作缓存区结尾的内容
d1G 删除直到工作缓存区开始的内容

在Vi 中移动光标

  1. k
  2. h l
  3. j
  4.  
  5. ^ 移动到该行第一个非空格的字符处
  6. w 向前移动一个单词,将符号或标点当作单词处理
  7. W 向前移动一个单词,不把符号或标点当作单词处理
  8. b 向后移动一个单词,把符号或标点当作单词处理
  9. B 向后移动一个单词,不把符号或标点当作单词处理
  10. ( 光标移至句首
  11. ) 光标移至句尾
  12. { 光标移至段落开头
  13. } 光标移至段落结尾
  14. H 光标移至屏幕顶行
  15. M 光标移至屏幕中间行
  16. L 光标移至屏幕最后行
  17. 0 到行首
  18. $ 到行尾
  19. gg 到页首
  20. G 到页末
  21. 行号+G 跳转到指定行
  22. n+ 光标下移n
  23. n- 光标上移n
  24. Ctrl+g 查询当前行信息和当前文件信息
  25.  
  26. fx 向右跳到本行字符x处(x可以是任何字符)
  27. Fx 向左跳到本行字符x处(x可以是任何字符)
  28.  
  29. tx fx相同,区别是跳到字符x
  30. Tx Fx相同,区别是跳到字符x
  31.  
  32. C-b 向上滚动一屏
  33. C-f 向下滚动一屏
  34. C-u 向上滚动半屏
  35. C-d 向下滚动半屏
  36. C-y 向上滚动一行
  37. C-e 向下滚动一行
  38.  
  39. nz 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

进入和退出Vi命令

  1. vi filename 打开或新建文件,并将光标置于第一行首
  2. vi +n filename 打开文件,并将光标置于第n行首
  3. vi + filename 打开文件,并将光标置于最后一行首
  4. vi +/pattern filename 打开文件,并将光标置于第一个与pattern匹配的串处
  5. vi -r filename 在上次正用vi编辑时发生系统崩溃,恢复filename
  6. vi filename ... filename 打开多个文件,依次进行编辑
  7.  
  8. ZZ 退出vi并保存
  9. :q! 退出vi,不保存
  10. :wq 退出vi并保存

重复操作

  1. . 重复上一次操作

自动补齐

  1. C-n 匹配下一个关键字
  2. C-p 匹配上一个关键字

插入

  1. o 在光标下方新开一行并将光标置于新行行首,进入插入模式。
  2. O 同上,在光标上方。
  3.  
  4. a 在光标之后进入插入模式。
  5. A 同上,在光标之前。
  6.  
  7. R 进入替换模式,直到按下Esc
  8. set xxx 设置XXX选项。

行合并

  1. J 把下面一行合并到本行后面

Vi中查找及替换命令

  1. /pattern 从光标开始处向文件尾搜索pattern
  2. ?pattern 从光标开始处向文件首搜索pattern
  3. n 在同一方向重复上一次搜索命令
  4. N 在反方向上重复上一次搜索命令
  5. % 查找配对的括号
  6. :s/p1/p2/g 将当前行中所有p1均用p2替代,若要每个替换都向用户询问则应该用gc选项
  7. :n1,n2s/p1/p2/g 将第n1n2行中所有p1均用p2替代
  8. :g/p1/s//p2/g 将文件中所有p1均用p2替换
  9.  
  10. .*[]^%~$ Vi中具有特殊含义,若需要查找则应该加上转义字符"\"

查找的一些选项

设置高亮

  1. :set hlsearch 设置高亮
  2. :set nohlsearch 关闭高亮
  3. :nohlsearch 关闭当前已经设置的高亮

增量查找

  1. :set incsearch 设置增量查找
  2. :set noincsearch 关闭增量查找

在Vi中删除

  1. x 删除当前光标下的字符
  2. dw 删除光标之后的单词剩余部分。
  3. d$ 删除光标之后的该行剩余部分。
  4. dd 删除当前行。
  5.  
  6. c 功能和d相同,区别在于完成删除操作后进入INSERT MODE
  7. cc 也是删除当前行,然后进入INSERT MODE

更改字符

  1. rx 将当前光标下的字符更改为xx为任意字符)
  2. ~ 更改当前光标下的字符的大小写

键盘宏操作

  1. qcharacter 开始录制宏,characteraz的任意字符
  2. q 终止录制宏
  3. @character 调用先前录制的宏

恢复误操作

  1. u 撤销最后执行的命令
  2. U 修正之前对该行的操作
  3. Ctrl+R Redo

在Vi中操作Frame

  1. c-w c-n 增加frame
  2. c-w c-c 减少frame
  3. c-w c-w 切换frame
  4. c-w c-r 交换两个frame

VIM中的块操作

Vim支持多达26个剪贴板

  1. 选块 先用vC-vV选择一块,然后用y复制,再用p粘贴。
  2. yy 复制当前整行
  3. nyy 复制当前行开始的n行内容
  4. ?nyy 将光标当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
  5. ?nyw 将光标当前行及其下n个词保存到寄存器?中,其中?为一个字母,n为一个数字
  6. ?nyl 将光标当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
  7. ?p 将寄存器?中的内容粘贴到光标位置之后。如果?是用yy复制的完整行,
  8. 则粘贴在光标所在行下面。这里?可以是一个字母,也可以是一个数字
  9. ?P 将寄存器a中的内容粘贴到光标位置之前。如果?是用yy复制的完整行,
  10. 则粘贴在光标所在行上面。这里?可以是一个字母,也可以是一个数字
  11. ay[motion]
  12. ay$ 复制光标位置到行末并保存在寄存器a
  13. ayft 复制光标位置到当前行第一个字母t并保存在寄存器a

以上指令皆可去掉a工作,则y,p对未命名寄存器工作(所有d,c,x,y的对象都被保存在这里)。

剪切/复制/粘贴

所有删除的内容自动被保存,可以用p键粘贴

Vi的选项设置

  1. all 列出所有选项设置情况
  2. term 设置终端类型
  3. ignorance 在搜索中忽略大小写
  4. list 显示制表位(Ctrl+I)和行尾标志($)
  5. number 显示行号
  6. report 显示由面向行的命令修改过的数目
  7. terse 显示简短的警告信息
  8. warn 在转到别的文件时若没保存当前文件则显示NO write信息
  9. nomagic 允许在搜索模式中,使用前面不带“\”的特殊字符
  10. nowrapscan 禁止vi在搜索到达文件两端时,又从另一端开始
  11. mesg 允许vi显示其他用户用write写到自己终端上的信息

tips

对代码自动格式化 gg=G

在vi/vim中,跳到文件首尾快捷键:

文件开始:shift + g

文件结束:g g

from:http://dsec.pku.edu.cn/~jinlong/vi/Vi.html

from:http://www.caole.net/diary/vim.html#sec-1

vi / vim 删除以及其它命令的更多相关文章

  1. vi / vim 删除以及翻页 其它命令

    vim中翻页的命令 vim中翻页的命令 整页翻页 ctrl-f ctrl-b f就是forword b就是backward 翻半页 ctrl-d ctlr-u d=down u=up 滚一行 ctrl ...

  2. Linux vi/vim and linux yum 命令

    Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...

  3. vi/vim 文字处理器常用命令

    目录 vi 与vim vi 的三种模式 vi 光标移动 vi 搜索与替换 vi 删除 vi 复制 vi 粘贴 vi 其他 vi 进入编辑模式 vi 命令行命令 vim 附加功能 vi 与vim vi是 ...

  4. Linux系统 vi/vim文本编辑器

    Linux系统 vi/vim文本编辑器 (一)Vim/Vi简介 (二)Vim/Vi工作模式 (三)Vim/Vi基本使用 (四)Vim/Vi应用技巧 (一)Vim/Vi简介 Vim/Vi是一个功能强大的 ...

  5. 架构师养成记--26.vi/vim相关操作

    vi/vim命令模式插入模式 aio编辑模式 : aio就是vi/vim的插入模式命令    作用a         在光标后附加文本A         在本行末附加文本i         在光标钱插 ...

  6. 快速提高 Vi/Vim 使用效率的原则与途径

    Vi/Vim 是所有 Unix/Linux 操作系统默认配备的编辑器.因其强大的功能和高效的操作,Vi/Vim 也成为众多 Unix/Linux 用户.管理员必须掌握并熟练使用的编辑工具之一.尤其是在 ...

  7. vi/vim编辑器操作梳理

    1. vi/vim编辑器详细使用讲解 1.1 vi/vim编辑器的3种模式 1.2 vi/vim编辑器操作说明 参数/命令/模式 说明 ###普通模式   :set nu  显示行号 :set non ...

  8. mac OS vi/vim 使用教程

    vi/vim 的使用 基本上 vi/vim 共分为三种模式 分别是 命令模式(Command mode) 输入模式(Insert mode) 底线命令模式(Last line mode) 命令模式: ...

  9. vim 删除 替换

    1,删除包含pattern的某一行 :g/pattern/d 或 :%g/pattern/d 2,删除不包含pattern的某一行 :v/pattern/d 或 :g!/pattern/d 3,替换 ...

随机推荐

  1. 【Hades】ades是一个开源库,基于JPA和Spring构建,通过减少开发工作量显著的改进了数据访问层的实现

    几乎每个应用系统都需要通过访问数据来完成工作.要想使用领域设计方法,你就需要为实体类定义和构建资源库来实现领域对象的持久化.目前开发人员经常使用JPA来实现持久化库.JPA让持久化变得非常容易,但是仍 ...

  2. 开发设计模式(三)策略模式(Strategy Pattern)

    转自http://blog.sina.com.cn/s/blog_89d90b7c01017zrr.html 下面的环境是unity3d,用C#进行编码,当然有人会说这是在乱用模式,U3D不一定适合使 ...

  3. CODEVS 2994 超级弹珠

    题目描述 Description 奶牛们最近从著名的奶牛玩具制造商Tycow那里,买了一套仿真版彩蛋游戏设备.Bessie把她们玩游戏的草坪划成了N*N单位的矩阵,同时列出了她的K个对手在草地上的位置 ...

  4. 如何在一整张背景图中,加隐形的a标签

    很常见的一个需求,就上图每个国家图标都得加上各自指定的a标签 这时,我们就可以去加上隐藏且定位准确的几个a标签 这个时候,主要用到的就是text-indent和overflow 这两个属性的配合.te ...

  5. iOS 页面间传值 之 单例传值 , block 传值

    ios 页面间传值有许多,前边已经分享过属性传值和代理传值,今天主要说一下单例传值和 block 传值 单例传值:单例模式一种常用的开发的模式,单例因为在整个程序中无论在何时初始化对象,获取到的都是同 ...

  6. 切换加上延迟加载js代码

    切换加上延迟加载js代码 (function(){ var tit = $("#tab02 li"), con = $("#wrapmp>div"), c ...

  7. Linux(CentOS)常用命令

    http://fedoranews.org/alex/tutorial/rpm/3.shtml rpm.org rpm -qa|grep mysql 查询已安装的含有mysql的包. mv 移动文件. ...

  8. ***PHP各种编码的汉字字符串截取

    虽然PHP有现成的截取字符串函数substr(),但是这个函数不能对汉字字符串进行截取,要实现这种效果还需要我们自己去编写相应的函数.汉字有多种编码,比如GB2312,UTF-8等,汉字字符串的截取需 ...

  9. 剖析 Linux hypervisor--KVM 和 Lguest 简介

    慢慢弄清楚..   M. Tim Jones, 顾问工程师, Emulex Corp. M. Tim Jones 是一名嵌入式软件工程师,他是 Artificial Intelligence: A S ...

  10. Ubuntu nfs 配置

    1. nfs server端的安装和配置 (1)安装nfs server sudo apt-get install nfs-kernel-server nfs-common (2)重启nfs serv ...