vi / vim 删除以及其它命令
删除一行: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 中移动光标
- k 上
- h l 左 右
- j 下
- ^ 移动到该行第一个非空格的字符处
- w 向前移动一个单词,将符号或标点当作单词处理
- W 向前移动一个单词,不把符号或标点当作单词处理
- b 向后移动一个单词,把符号或标点当作单词处理
- B 向后移动一个单词,不把符号或标点当作单词处理
- ( 光标移至句首
- ) 光标移至句尾
- { 光标移至段落开头
- } 光标移至段落结尾
- H 光标移至屏幕顶行
- M 光标移至屏幕中间行
- L 光标移至屏幕最后行
- 0 到行首
- $ 到行尾
- gg 到页首
- G 到页末
- 行号+G 跳转到指定行
- n+ 光标下移n行
- n- 光标上移n行
- Ctrl+g 查询当前行信息和当前文件信息
- fx 向右跳到本行字符x处(x可以是任何字符)
- Fx 向左跳到本行字符x处(x可以是任何字符)
- tx 和fx相同,区别是跳到字符x前
- Tx 和Fx相同,区别是跳到字符x后
- C-b 向上滚动一屏
- C-f 向下滚动一屏
- C-u 向上滚动半屏
- C-d 向下滚动半屏
- C-y 向上滚动一行
- C-e 向下滚动一行
- nz 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
进入和退出Vi命令
- vi filename 打开或新建文件,并将光标置于第一行首
- vi +n filename 打开文件,并将光标置于第n行首
- vi + filename 打开文件,并将光标置于最后一行首
- vi +/pattern filename 打开文件,并将光标置于第一个与pattern匹配的串处
- vi -r filename 在上次正用vi编辑时发生系统崩溃,恢复filename
- vi filename ... filename 打开多个文件,依次进行编辑
- ZZ 退出vi并保存
- :q! 退出vi,不保存
- :wq 退出vi并保存
重复操作
- . 重复上一次操作
自动补齐
- C-n 匹配下一个关键字
- C-p 匹配上一个关键字
插入
- o 在光标下方新开一行并将光标置于新行行首,进入插入模式。
- O 同上,在光标上方。
- a 在光标之后进入插入模式。
- A 同上,在光标之前。
- R 进入替换模式,直到按下Esc
- set xxx 设置XXX选项。
行合并
- J 把下面一行合并到本行后面
Vi中查找及替换命令
- /pattern 从光标开始处向文件尾搜索pattern
- ?pattern 从光标开始处向文件首搜索pattern
- n 在同一方向重复上一次搜索命令
- N 在反方向上重复上一次搜索命令
- % 查找配对的括号
- :s/p1/p2/g 将当前行中所有p1均用p2替代,若要每个替换都向用户询问则应该用gc选项
- :n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代
- :g/p1/s//p2/g 将文件中所有p1均用p2替换
- .*[]^%~$ 在Vi中具有特殊含义,若需要查找则应该加上转义字符"\"
查找的一些选项
设置高亮
- :set hlsearch 设置高亮
- :set nohlsearch 关闭高亮
- :nohlsearch 关闭当前已经设置的高亮
增量查找
- :set incsearch 设置增量查找
- :set noincsearch 关闭增量查找
在Vi中删除
- x 删除当前光标下的字符
- dw 删除光标之后的单词剩余部分。
- d$ 删除光标之后的该行剩余部分。
- dd 删除当前行。
- c 功能和d相同,区别在于完成删除操作后进入INSERT MODE
- cc 也是删除当前行,然后进入INSERT MODE
更改字符
- rx 将当前光标下的字符更改为x(x为任意字符)
- ~ 更改当前光标下的字符的大小写
键盘宏操作
- qcharacter 开始录制宏,character为a到z的任意字符
- q 终止录制宏
- @character 调用先前录制的宏
恢复误操作
- u 撤销最后执行的命令
- U 修正之前对该行的操作
- Ctrl+R Redo
在Vi中操作Frame
- c-w c-n 增加frame
- c-w c-c 减少frame
- c-w c-w 切换frame
- c-w c-r 交换两个frame
VIM中的块操作
Vim支持多达26个剪贴板
- 选块 先用v,C-v,V选择一块,然后用y复制,再用p粘贴。
- yy 复制当前整行
- nyy 复制当前行开始的n行内容
- ?nyy 将光标当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
- ?nyw 将光标当前行及其下n个词保存到寄存器?中,其中?为一个字母,n为一个数字
- ?nyl 将光标当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
- ?p 将寄存器?中的内容粘贴到光标位置之后。如果?是用yy复制的完整行,
- 则粘贴在光标所在行下面。这里?可以是一个字母,也可以是一个数字
- ?P 将寄存器a中的内容粘贴到光标位置之前。如果?是用yy复制的完整行,
- 则粘贴在光标所在行上面。这里?可以是一个字母,也可以是一个数字
- ay[motion]
- ay$ 复制光标位置到行末并保存在寄存器a中
- ayft 复制光标位置到当前行第一个字母t并保存在寄存器a中
以上指令皆可去掉a工作,则y,p对未命名寄存器工作(所有d,c,x,y的对象都被保存在这里)。
剪切/复制/粘贴
所有删除的内容自动被保存,可以用p键粘贴
Vi的选项设置
- all 列出所有选项设置情况
- term 设置终端类型
- ignorance 在搜索中忽略大小写
- list 显示制表位(Ctrl+I)和行尾标志($)
- number 显示行号
- report 显示由面向行的命令修改过的数目
- terse 显示简短的警告信息
- warn 在转到别的文件时若没保存当前文件则显示NO write信息
- nomagic 允许在搜索模式中,使用前面不带“\”的特殊字符
- nowrapscan 禁止vi在搜索到达文件两端时,又从另一端开始
- 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 删除以及其它命令的更多相关文章
- vi / vim 删除以及翻页 其它命令
vim中翻页的命令 vim中翻页的命令 整页翻页 ctrl-f ctrl-b f就是forword b就是backward 翻半页 ctrl-d ctlr-u d=down u=up 滚一行 ctrl ...
- Linux vi/vim and linux yum 命令
Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...
- vi/vim 文字处理器常用命令
目录 vi 与vim vi 的三种模式 vi 光标移动 vi 搜索与替换 vi 删除 vi 复制 vi 粘贴 vi 其他 vi 进入编辑模式 vi 命令行命令 vim 附加功能 vi 与vim vi是 ...
- Linux系统 vi/vim文本编辑器
Linux系统 vi/vim文本编辑器 (一)Vim/Vi简介 (二)Vim/Vi工作模式 (三)Vim/Vi基本使用 (四)Vim/Vi应用技巧 (一)Vim/Vi简介 Vim/Vi是一个功能强大的 ...
- 架构师养成记--26.vi/vim相关操作
vi/vim命令模式插入模式 aio编辑模式 : aio就是vi/vim的插入模式命令 作用a 在光标后附加文本A 在本行末附加文本i 在光标钱插 ...
- 快速提高 Vi/Vim 使用效率的原则与途径
Vi/Vim 是所有 Unix/Linux 操作系统默认配备的编辑器.因其强大的功能和高效的操作,Vi/Vim 也成为众多 Unix/Linux 用户.管理员必须掌握并熟练使用的编辑工具之一.尤其是在 ...
- vi/vim编辑器操作梳理
1. vi/vim编辑器详细使用讲解 1.1 vi/vim编辑器的3种模式 1.2 vi/vim编辑器操作说明 参数/命令/模式 说明 ###普通模式 :set nu 显示行号 :set non ...
- mac OS vi/vim 使用教程
vi/vim 的使用 基本上 vi/vim 共分为三种模式 分别是 命令模式(Command mode) 输入模式(Insert mode) 底线命令模式(Last line mode) 命令模式: ...
- vim 删除 替换
1,删除包含pattern的某一行 :g/pattern/d 或 :%g/pattern/d 2,删除不包含pattern的某一行 :v/pattern/d 或 :g!/pattern/d 3,替换 ...
随机推荐
- 【Hades】ades是一个开源库,基于JPA和Spring构建,通过减少开发工作量显著的改进了数据访问层的实现
几乎每个应用系统都需要通过访问数据来完成工作.要想使用领域设计方法,你就需要为实体类定义和构建资源库来实现领域对象的持久化.目前开发人员经常使用JPA来实现持久化库.JPA让持久化变得非常容易,但是仍 ...
- 开发设计模式(三)策略模式(Strategy Pattern)
转自http://blog.sina.com.cn/s/blog_89d90b7c01017zrr.html 下面的环境是unity3d,用C#进行编码,当然有人会说这是在乱用模式,U3D不一定适合使 ...
- CODEVS 2994 超级弹珠
题目描述 Description 奶牛们最近从著名的奶牛玩具制造商Tycow那里,买了一套仿真版彩蛋游戏设备.Bessie把她们玩游戏的草坪划成了N*N单位的矩阵,同时列出了她的K个对手在草地上的位置 ...
- 如何在一整张背景图中,加隐形的a标签
很常见的一个需求,就上图每个国家图标都得加上各自指定的a标签 这时,我们就可以去加上隐藏且定位准确的几个a标签 这个时候,主要用到的就是text-indent和overflow 这两个属性的配合.te ...
- iOS 页面间传值 之 单例传值 , block 传值
ios 页面间传值有许多,前边已经分享过属性传值和代理传值,今天主要说一下单例传值和 block 传值 单例传值:单例模式一种常用的开发的模式,单例因为在整个程序中无论在何时初始化对象,获取到的都是同 ...
- 切换加上延迟加载js代码
切换加上延迟加载js代码 (function(){ var tit = $("#tab02 li"), con = $("#wrapmp>div"), c ...
- Linux(CentOS)常用命令
http://fedoranews.org/alex/tutorial/rpm/3.shtml rpm.org rpm -qa|grep mysql 查询已安装的含有mysql的包. mv 移动文件. ...
- ***PHP各种编码的汉字字符串截取
虽然PHP有现成的截取字符串函数substr(),但是这个函数不能对汉字字符串进行截取,要实现这种效果还需要我们自己去编写相应的函数.汉字有多种编码,比如GB2312,UTF-8等,汉字字符串的截取需 ...
- 剖析 Linux hypervisor--KVM 和 Lguest 简介
慢慢弄清楚.. M. Tim Jones, 顾问工程师, Emulex Corp. M. Tim Jones 是一名嵌入式软件工程师,他是 Artificial Intelligence: A S ...
- Ubuntu nfs 配置
1. nfs server端的安装和配置 (1)安装nfs server sudo apt-get install nfs-kernel-server nfs-common (2)重启nfs serv ...