一·vim介绍
vim类似于windows的记事本,但是功能更强大
二·vim使用示例
vim /tmp/test/test.txt
注:打开 tmp目录下test目录下的test.txt文件,若没有则直接创建该文件。不支持直接创建文件夹
既,若tmp目录下没有test文件夹则无法保存,因为vim不能自动创建文件夹
需要先创建文件夹 mkdir -r /tmp/test mkdir 创建文件夹 -r 递归创建
按 i 进入编辑模式(插入模式)
随便输入任意文字
按esc键退出编辑模式(插入模式)
输入 :wq write(写,保存) quit(退出) :q! 强制退出不保存 :wq! 强制退出并保存. 或者ZZ 保存退出
行之间调整: 上下左右调整 光标箭头↑↓
移动到最后一行 G(shift+g)
移动到第1行 gg
移动到某一行 100gg
列之间调整: 左右 了解 光标移动到行首 ←→ HOME键 光标移动到行尾 END键
复制当前行 yy 复制当前行以及后面99行 100yy
删除当前行 dd 删除当前行以及后面99行 100dd
粘贴到当前行后 p
其他快捷键
撤销 u(undo)
显示行号 :set nu 或 :set number
取消显示行号 :set nonu
搜索(默认就是向下找) /你要的内容
继续向下搜索 n(next)
继续向上搜索 N
搜索默认向上找 ?你要的内容 、
临时取消语法高亮 :noh 一般用于 /搜索错误,可以使用.
批量处理行:复制,删除
shift + v 进入到可视行模式(批量操作行) 按上下键,选择要处理的范围 如果删除按d,如果复制按y
批量删除文件开头的#
按ctrl + v,进入批量操作模式 选择要操作的区域 然后按d,删除.
批量给文件开头增加内容 by_zz-zjx 按ctrl + v,进入批量操作模式 选择要操作的区域 选完后,按shift + i (I),进入编辑模式 写入内容 按esc等待.
查找 zz_zjx 并替换成 zzzjx
:%s/zz\_zjx/zzzjx/g
:s/root/ROOT/ #替换当前行第一个root
:s/root/ROOT/g #替换当前行所有root
:%s/root/ROOT/g #全文替换
:%s/root/test/ig #不区分大小写全文替换
:%s/#// #将每行第一个#替换成空
将第6行到10行的内容复制到11行
:6,10copy11
查找
:/内容
字符编辑
x #剪切光标处的字符
Nx #剪切光标处起始的N个字符,N为正整数
xp #交换光标所在处的字符及其后面字符的位置,本质是先剪切,再粘贴
~ #转换大小写
J #删除当前行后的换行符,就是把下一行接到当前行后面
替换命令
r #只替换光标所在处的一个字符,先敲r,再输入想要替换的新字符
R #切换成REPLACE模式(在末行出现-- REPLACE -- 提示),按ESC回到命令模式
删除命令
d #删除命令,可结合光标跳转字符,实现范围删除
d$|D #删除光标处到行尾
d^ #删除光标处到非空行首
d0 #删除光标处到处行首
dw #从光标处删到下一个单词的词首
de #从光标处删到当前单词词尾或下一单词的词尾
db #从光标处删到当前单词词首或前一单词的词首
dG #删除光标到文件末尾
dgg #删除光标到文件开始
dd #删除光标所在行
Ndd #从当前行开始,删N行,N表示正整数,2dd表示从当前行开始,总共删2行d
常见故障:
出现交换分区提示
出现原因,异常断电,或者不同窗口打开同一文件。原理:vim打开文件时会默认开启一个.swp得临时文件
解决 删除该临时文件 rm -rf /tmp/.test.txt.swp