Vim编辑器基本操作命令
2016-05-31 13:35
357 查看
以前一直对使用Vim来编辑修改文件感觉一种莫名的小拒绝,觉得超级不方便啊。现在才知道,是自己知道的太少,图样图森破啊!
Vim编辑器在内存缓冲区中处理数据。
启动Vim编辑器:输入vim和要编译的文件名(或是vi和要编译的文件名)。如:
vim log.txt
如果指定的log.txt不存在,则Vim会新开一段缓冲区来编辑。此时在屏幕的下方会有"log.txt"
[New File] 显示。
如果指定的log.txt存在,则Vim会将整个内容都读到一块缓冲区域来准备编辑。在最底部会显示编辑文件的信息,如:
"log.txt" 42L, 430C
1,1 All
Vim的三种操作模式:
(1)普通模式,使用vim或是vi命令打开一个文件,就进入到了普通模式。在普通模式下,Vim将按键解释成命令。
可以使用方向键来上下左右移动光标。也可以使用h,j,k,l键来左,下,上,右移动光标。
使用PageUp(Ctrl+B) PageDown(Ctrl+F)来上下翻页。
G:光标移到缓冲区的最后一行
num G:光标移动到缓冲区的第num行
gg:光标移动到缓冲区的第一行
在普通模式下,常用的编辑命令:
x 删除当前光标所在位置的字符
dd 删除当前光标所在行
dw 删除当前光标所在位置的单词(但是不会删除光标之前的字符,如光标如果在android的d上,则只会删除droid,不会删除an,但是如果 光标在a上,则整个android都会被删除)
d$ 删除当前光标所在位置至行尾的内容
u 撤销前一条编辑命令
r char 用char替换当前光标所在位置的单个字符
R text 用text覆盖当前光标坐在位置的数据,知道按下Esc键。(Replace)
J 删除当前光标所在行行尾的换行符。(如在上一行输入OK,然后回车,在下一行输入NOT,则在OK行执行J,下一行的NOT会移到上 一行去,即删除了OK行的回车换行符)
复制和粘贴
Vim在删除数据时,实际上它会将数据保存在单独的一个寄存器中,可以使用命令p来取回数据。
剪切和粘贴:dd,dw,d$命令等先删除,再用p命令取回数据。如先使用dd删除光标所在行,然后把光标移动到要粘贴该文本的地方,再使用p命令粘贴即可。
复制和粘贴:复制采用y命令,如yw为复制光标所在的单词,y$为复制到行尾等,然后再使用p命令粘贴即可。还有一种可视模式来复制,使用更方便:可视模式在移动光标时会高亮显示文本。进入可视模式,把光标放在需要复制的位置,然后按v键,这时光标所在位置的文本已经被高亮显示,接着移动光标覆盖需要复制的文本,移动光标时,所选区域都会高亮显示,选择完后,按y键来激活复制命令,然后把光标移动要需要粘贴的位置,按p键粘贴即可。
(2)插入模式,在普通模式时,按i,I,o,O,a,A,r,R中的任何一个字母,就进入到插入模式。在插入模式下,Vim会将当前光标位置输入的每个键都插入到缓冲区。在插入模式下,按Esc键回到普通模式。
(3)命令行模式,在普通模式时,输入:,/,?中的任何一个,就进入到命令行模式。
在命令行模式可以输入如下命令来退出编辑:
q:如果没有修改缓冲区内容,退出。
q!:取消所有对缓冲区数据的修改并退出。
wq:将缓冲区的数据修改保存并退出
w filename:将文件保存到另一个文件名下。
在命令行模式下可以查找字符串:
输入:/要查找的字符串,然后回车
如要查找love,则在命令行输入:/love,然后回车。此时会有三种情况:在光标之后有love,则光标移到光标后出现love的第一个位置;在光标之后没有love,但是在光标之前有love,则光标绕过文件尾移动到出现该字符创的第一个位置;在文本中没有love,则输出一条错误消息:E486:
Pattern not found: love
要继续查找同一个字符串,只需要按下/然后回车即可,或者使用n键(next)。
在命令行模式下替换字符串:
格式:s/old/new/
:s/old/new/g 使用new替换光标所在行的所有old
:n,ms/old/new/g 使用new替换行号n和m间的所有old
:%s/old/new/g
使用new替换整个文件中的所有old
:%s/old/new/gc
使用new替换整个文件中的所有old,并且每次都出现提示
《Linux命令行与Shell脚本编程大全(第二版)》真是一本入门好书!!!
Vim编辑器在内存缓冲区中处理数据。
启动Vim编辑器:输入vim和要编译的文件名(或是vi和要编译的文件名)。如:
vim log.txt
如果指定的log.txt不存在,则Vim会新开一段缓冲区来编辑。此时在屏幕的下方会有"log.txt"
[New File] 显示。
如果指定的log.txt存在,则Vim会将整个内容都读到一块缓冲区域来准备编辑。在最底部会显示编辑文件的信息,如:
"log.txt" 42L, 430C
1,1 All
Vim的三种操作模式:
(1)普通模式,使用vim或是vi命令打开一个文件,就进入到了普通模式。在普通模式下,Vim将按键解释成命令。
可以使用方向键来上下左右移动光标。也可以使用h,j,k,l键来左,下,上,右移动光标。
使用PageUp(Ctrl+B) PageDown(Ctrl+F)来上下翻页。
G:光标移到缓冲区的最后一行
num G:光标移动到缓冲区的第num行
gg:光标移动到缓冲区的第一行
在普通模式下,常用的编辑命令:
x 删除当前光标所在位置的字符
dd 删除当前光标所在行
dw 删除当前光标所在位置的单词(但是不会删除光标之前的字符,如光标如果在android的d上,则只会删除droid,不会删除an,但是如果 光标在a上,则整个android都会被删除)
d$ 删除当前光标所在位置至行尾的内容
u 撤销前一条编辑命令
r char 用char替换当前光标所在位置的单个字符
R text 用text覆盖当前光标坐在位置的数据,知道按下Esc键。(Replace)
J 删除当前光标所在行行尾的换行符。(如在上一行输入OK,然后回车,在下一行输入NOT,则在OK行执行J,下一行的NOT会移到上 一行去,即删除了OK行的回车换行符)
复制和粘贴
Vim在删除数据时,实际上它会将数据保存在单独的一个寄存器中,可以使用命令p来取回数据。
剪切和粘贴:dd,dw,d$命令等先删除,再用p命令取回数据。如先使用dd删除光标所在行,然后把光标移动到要粘贴该文本的地方,再使用p命令粘贴即可。
复制和粘贴:复制采用y命令,如yw为复制光标所在的单词,y$为复制到行尾等,然后再使用p命令粘贴即可。还有一种可视模式来复制,使用更方便:可视模式在移动光标时会高亮显示文本。进入可视模式,把光标放在需要复制的位置,然后按v键,这时光标所在位置的文本已经被高亮显示,接着移动光标覆盖需要复制的文本,移动光标时,所选区域都会高亮显示,选择完后,按y键来激活复制命令,然后把光标移动要需要粘贴的位置,按p键粘贴即可。
(2)插入模式,在普通模式时,按i,I,o,O,a,A,r,R中的任何一个字母,就进入到插入模式。在插入模式下,Vim会将当前光标位置输入的每个键都插入到缓冲区。在插入模式下,按Esc键回到普通模式。
(3)命令行模式,在普通模式时,输入:,/,?中的任何一个,就进入到命令行模式。
在命令行模式可以输入如下命令来退出编辑:
q:如果没有修改缓冲区内容,退出。
q!:取消所有对缓冲区数据的修改并退出。
wq:将缓冲区的数据修改保存并退出
w filename:将文件保存到另一个文件名下。
在命令行模式下可以查找字符串:
输入:/要查找的字符串,然后回车
如要查找love,则在命令行输入:/love,然后回车。此时会有三种情况:在光标之后有love,则光标移到光标后出现love的第一个位置;在光标之后没有love,但是在光标之前有love,则光标绕过文件尾移动到出现该字符创的第一个位置;在文本中没有love,则输出一条错误消息:E486:
Pattern not found: love
要继续查找同一个字符串,只需要按下/然后回车即可,或者使用n键(next)。
在命令行模式下替换字符串:
格式:s/old/new/
:s/old/new/g 使用new替换光标所在行的所有old
:n,ms/old/new/g 使用new替换行号n和m间的所有old
:%s/old/new/g
使用new替换整个文件中的所有old
:%s/old/new/gc
使用new替换整个文件中的所有old,并且每次都出现提示
《Linux命令行与Shell脚本编程大全(第二版)》真是一本入门好书!!!
相关文章推荐
- java的对象-》jason-》String-》byte数组的转化方法。
- Hibernate关联映射基于注解
- Android 弹窗口宽度设置
- quick cocos2dx截图保存到本地
- 手机网页版JS压缩上传图片--base64位 兼容IOS和安卓
- 换行算法
- Java 调用Matlab
- C#winform怎么弹出一个模式经度条对话框的实现方法
- 设计模式-状态模式实现状态机
- [老文章搬家] [翻译] 深入解析win32 crt 调试堆
- sqlserver查询树表某个节点所有的子节点
- 第十四周项目2-两个成员的类模板(1)
- Greta 入门指南
- 第十三周项目3形状类族中的纯虚函数
- Linux如何查看进程、杀死进程、启动进程等常用命令
- 高德地图添加点击手势不响应
- scrollLoading插件实现图片延迟懒加载实例包涵html和js代码
- Sign in - CodeProject
- 第二阶段—个人工作总结09
- 第14周-项目2-两个成员的类模板(1)