1.vim 安装包 vim-enhanced
2. 移动到行首 shift 6,移动到行尾 shfit + 4。
3. 移动到某行,nG,1G 首行,G 行尾,10G 移动到第十行
4. nx 向后删除n个字符,直接 x,向后删除一个字符。
5.小写 p,光标所在行下方粘贴。
6. u 撤销,ctrl + r 反撤销
7. r 替换当前光标下的字符并退出;R 替换当前光标的字符并依次向后替换
8. v 选中指定字符,x 确定剪切,p 粘贴
9. :1,2s/word1/word2/g 包括第二行,但是匹配的是 word1 字符串,比如 loveword1,userword1等都会被替换, 1,$s#\<word1\>#root#g 全文替换,并且精准匹配。
10. 替换过程使用 +c 选项(communication),和用户交互。
|
Vim
vim的三种模式
一、一般模式
光标移动
vim 删除、复制、粘贴
二、编辑模式 插入字符
三、
命令模式 查找和替换
替换过程,建议使用sed
|
wq和x的区别
:wq 强制性写入文件并退出(存盘并退出 write and quite)。即使文件没有被修改也强制写入,并更新文件的修改时间。
:x 写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间;否则不会更新文件修改时间。
这两者一般情况下没什么不一样,但是在编程方面,对编辑源文件可能会产生重要影响。因为文件即使没有修改,":wq" 强制更新文件的修改时间,这样会让 make 编译整个项目时以为文件被修改过了,然后就得重新编译链接生成可执行文件。这可能会产生让人误解的后果,当然也产生了不必要的系统资源花销。不过像是版本控制的软件一般首选还是比较文件内容,修改时间一般不加以理会。
|
:set ic 搜索的时候不区分大小写
:r /tmp/1.txt 拷贝其他文件内容
恢复到未更改状态 :e!
注释所有的行,工作中常用
d$ dj 2dd dG d^
|
Vim 扩展
1、删除从光标所在位置到行尾的字符
在一般模式下输入大写“
D”或者输入“
d$”
快捷键
shift + d
2、删除从光标所在处到行尾字符
在一般模式下输入“
d^”
3、删除从光标所在处到行首字符
一般模式下输入 “
dG”
4、删除指定范围的行,比如10-15行
方法一:编辑模式
10G、6dd
方法二:命令模式
:10,15d 回车
5、把正在编辑的文件另存为一个新的文件
:w /tmp/1.txt 全部文件内容另存为 1.txt
:1,10 w /tmp/1.txt 1-10行另存为 1.txt
6、把其他文件内容导入到正在编辑的文件的光标所在处
:r /etc/passwd
7、正在编辑文件时,不退出文件,仍可以运行 Linux 命令
:! cat /tmp/1.txt 在不退出 vim 的情况下,查看其他文件内容
:r ! cat /tmp/1.txt 把命令结果导入到当前光标位置
8、vim 使用缩写命令
:ab aming adfjlkjaslkfjakdjflajsdlfkj
定义 aming 等于后面的字符串,再次输入aming的时候,就会显示字符串
9、vim 查找关键字不区分大小写
:set ic 不区分大小写
:set noic 区分大小写
10、把文件恢复到打开时的状态
方法一: 一直按撤销键 u
方法二: :e!
11、快捷键
d + i + w 删除当前光标上的单词
v + i + w 选中当前光标上的单词
shift + d 删除光标所在位置到行尾的字符
12、删除指定的内容
1.txt 内容
|