Linux中Vim的操作方法
Vim文本编辑器
Vim是Linux系统中默认的文本编辑器,类似于Windows中的记事本,但不需要图形化界面也可以使用,不过需要学会如何通过命令去操作Vim编辑器
1.工作模式
- 命令模式
- 按ESC键进入命令模式,打开Vim后默认在命令模式中
- 命令模式下左下角只显示文件名或者什么都显示
- 用于执行命令, 比如复制行, 粘贴行等等
- 输入模式
- 在命令模式下按下键盘的A,I,O等键进入输入模式
- 用于输入文本, 修改文本等
- a键模式会在光标所在位置后面添加内容,A在行尾添加内容
- i键模式会在光标所在位置前面添加内容,I在行首添加内容
- o键会在光标所在行的下方新建一行添加内容,O在上方新建内容
- 末行模式
- :键进入末行模式
- 用于查找文本, 保存修改等功能
- .光标所在行
- $最后一行
- +#光标所在行往后#行
- $-#倒数第#行
- %代表全文
2.文本编辑方式
打开文件
- vim filename:打开文件
- vim +n filename:打开文件并定位到第n行
- vim +/(指定内容) filename:打开文件比定位到有指定内容的所在行
关闭文件
- 末行模式关闭文件方法:
- q 退出
- w 保存
- wq 保存文件退出
- q! 强制退出
- w! 强制保存
- wq! 强制保存退出
- x 强制保存退出
- 命令模式退出方法:
- shift+zz 保存并退出
移动光标
- 以单词为单位
- h:向左移动一个字符
- l:向右移动一个字符
- j:向下移动一个字符
- k:向上移动一个字符
- (num)h:向左移动num个字符
- 以单词为单位移动
- w:移动到下一个单词的词首
- e:移动至当前词的词尾
- b:移动至当前词的词首
- ()num)w:移动到第num个词的词首
- 行内跳转
- 0:跳转到绝对行首
- ^:跳转到行首的第一个非空白字符
- $:转跳到绝对行尾
- 行间跳转
- gg:跳转到第一行 (num)gg跳转到第六行
- G:跳转到最后一行
- 句子间跳转
- (跳转到上一个句子
- )跳转到下一个句子
- 段落跳转
- {跳转到上一个段落
- }跳转到下一个段落
- 翻屏
- Ctrl+f:向下翻一屏
- Ctrl+b:向上翻一屏
- Ctrl+d:向下翻半屏
- Ctrl+u:向上翻半屏
字符编辑
编辑命令 | 意义 |
---|---|
x | 删除光标所在处的单个字符 |
#x | 删除光标所在及其向后的#个字符 |
xp | 交换光标所在处的字符及其后面字符的位置 |
d(空格) | 删除当前字符 |
dd | 删除这一行 |
#dd | 删除#行 |
d$ | 删除当前位置一直到绝对行尾的位置 |
d0 | 删除当前位置一直到绝对行首的位置 |
d^ | 删除从当前位置到非空白字符的行首位置 |
dw/de/db | 以单词为单位删除 |
D | 删除当前光标所在行内容,保留空行 |
-
(开始首行),(结束行数)d:在末行模式中使用d删除命令,例如:1,5d删除1-5行
-
yy:命令模式中复制行 #yy:复制#行
-
p:粘贴到光标下方或后面
-
P:粘贴到光标上方或前面
-
r:替换一个光标所在字符
-
R:进入替换模式,替换多个字符
-
u:撤销上次操作
-
#u:撤销前#次操作
-
Ctrl+R还原最近一次的撤销操作 重复前一次的编辑操作
-
v:可视化模式,以字符为单位选择,选择后的内容可以进行编辑操作
-
V:以行为单位进行选择,选择后的内容可以进行编辑操作
-
/(文本内容):从上往下查找匹配内容
- n:从上往下查找匹配到的内容的下一条
-
?(文本内容):从下往上查找匹配内容
- N:从下往上查找匹配到的内容的下一条
-
s:查找并替换(末行模式下使用)
- :(开始范围),(结束范围) s/源内容/替换内容/gi
-
:set nu:显示行号,:set nonu取消行号
3、快捷操作记录
命令模式下操作:
yi + 符号 //复制指定符号中的内容
例如:
yi' //复制单引号之间的内容
yi( //复制括号之间的内容
ctrl + p //将全文中出现过的内容列出,然后选择输入
g+d //搜索全文中当前光标所在单词,并跳转到第一个搜索到的内容
末行模式下操作:
末行模式下指令可以写入配置文件永久生效。配置文件位置如下:
- /etc/.vimrc
- ~/.vimrc
set all //查看所有末行模式下,可配置参数
//以下三项,用于设置编码格式
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set fileformat=unix //将Windows doc格式转换为unix格式
//以下五项一起使用,在编写脚本时使用起来很方便
set tabstop=4 //设置TAB宽度为4个空格
set softtabstop=4 //按一次退格键可以删除4个空格
set shiftwidth=4 //每一级缩进的长度,一般设置成跟 softtabstop一样
set expandtab //设置缩进用空格来表示
set autoindent //自动缩进
! + shell命令 //不退出vim执行shell命令
//vim在编辑的时候就可以打开多个文件:
:vs 或者 :vsplit 将当前窗口竖直分割,并在上面新窗口中显示当前文件
:vs filename 将当前窗口竖直分割,新文件在新窗口中显示
:sp 或者:sv或者:split 将当前窗口水平分割,并在左边新窗口中显示当前文件
:sp filename 将当前窗口竖直分割,新文件在左边新窗口中显示
:new 新建文件并竖直分割
:vnew 新建文件并水平分割
//在窗口之间切换可以用鼠标,如果不想用鼠标,切换按键如下:
Ctrl-w-j 切换到下方的分割窗口
Ctrl-w-k 切换到上方的分割窗口
Ctrl-w-l 切换到右侧的分割窗口
Ctrl-w-h 切换到左侧的分割窗口