vim有的linux版本没有,安装命令
centso: yum -y install vim
Ubuntu: apt install vim
vim是linux下的一个编辑器,vi是他的前身。可以说vim就是vi的升华,vim有很多快捷键,对于开发是一大助力。下面我们来学习学习。
使用vim打开文件
使用vim编辑文件直接在vim后加上需要编辑文件: vim filename
vim的三种模式
一般模式:我们在打开文件是就是该模式,在该模式下可进行一些复制,删除查找等等操作
命令模式:在一般模式下输入:,则进入命令模式,在该模式下进行保存,退出等操作
插入模式:在一般模式下输入“a/A/i/I/o/O”,则进入插入模式。在该模式下可以从当前光标所在位置向文件中插入正文。
三种模式的切换:
可以看出插入模式和命令模式是不可以直接切换的
插入模式
- a : 在光标 后 输入文本
- A : 在当前行 末尾 输入文本
- i : 在光标 前 输入文本
- I : 在当前行 开始位置 输入文本
- o : 在当前行 后 输入新的一行
- O : 在当前行 前 输入新的一行
一般模式
常用:
- yy : 复制当前光标所在行
- p : 粘贴到光标后
- P : 粘贴到光标前
- dd : 删除当前光标所在行
- ndd : 删除从光标所在行开始的后n行(包括光标所在行)
- k / j / h / l : 等同于上,下, 左,右。上下左右箭头也可实现相同功能
- H : 将光标移动到最上行
- gg : 将光标移动到最上行
- G : 将光标移动到最下行
- ^ : 将光标移动到本行的开头(跟正则有点像)
- 0 : 将光标移动到本行的开头
- $ : 将光标移动到本行的末尾(跟正则有点像)
- /abc : 向 后 查找字符串 “abc”
- ?abc : 向 前 查找字符串 “abc”
- n :查找下一个
- N : 反向查找下一个
- u : 撤销上次的操作
- U : 恢复对光标所在行的改变
不常用:
- Ctrl + b : 向上移动一页
- Ctrl + f : 向下移动一页
- Ctrl + u : 向上移动半页
- Ctrl + d : 向下移动半页
- yw : 复制光标所在单词
- y$ : 复制光标到行尾的字符
- x : 删除光标所在字符
- dw : 删除光标所在单词
- d$ : 删除光标到行尾的字符
- r : 替换光标所在字符
- R : 替换光标所在序列
- cw : 替换光标所在单词
- cb : 替换光标所在的前一个字符
- c$ : 替换光标到行尾的字符
- cc : 替换光标所在当前行
- . : 重复最后一条修改命令
命令模式
- :wq : 保存并退出
- :q! : 强制退出,不保存
- :W : 保存编辑
- :w filename : 另存为filename
- :w! filename : 强制性存入filename
- :set : 浏览当前系统参数
- :X : 对当前编辑的文件进行简单加密
vim 的配置文件 vimrc
vim的配置文件vimrc有两种,一种是系统配置/etc/vim/vimrc,另一种是用法配置~/.vimrc 。 我们一般修改的是用户的配置文件
在该模式下可以写一些vim的配置,比如显示行号,设置缩进等等。
常用:
- 设置行号:
set nu
- 显示括号匹配:
set showmatch
- 设置缩进:
set tabstop=4
- 继承前一行的缩进方式:
set autoindent
不常用:
- 支持中文不乱码:
- encoding选项用于缓存的文本、寄存器、Vim 脚本文件等;fileencoding选项是Vim写入文件时采用的编码类型;termencoding选项表示输出到终端时采用的编码类型。
'设置编码' set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8
- 突出显示当前行:
set cul
,set cursorline
- 突出显示当前列:
set cursorcolumn
,set cuc
- 启用鼠标:
set mouse=a
,set selection=exclusive
,set selectmode=mouse,key
- 设置粘贴模式:
set paste
. 在Vim中通过鼠标右键粘贴时会在行首多出许多缩进和空格,通过set paste
可以在插入模式下粘贴内容时不会有任何格式变形、胡乱缩进等问题。 - 显示空格和tab键,
set listchars=tab:>-, trail:-
- 显示状态栏:
set laststatus=2
- 显示光标当前位置:
set ruler