作者:曾Jerry 或 大橙员, 250359225@qq.com
vi/vim给我的第一印象就是非常不友好,可是大神还是建议我们要学会一点vi/vim的操作,因为就算你不把vi/vim当成主编辑器,只要你在Linux中,还是会碰到vi/vim的场景。说回来,只是自己菜,vi/vim是一个很强大的编辑器。
另外,现在一般使用vim, 把vim当成vi的升级版本就行。
vim的安装
$ sudo apt install vim
vim的配置
复制系统原有的配置到自己根目录下面:
$cp /etc/vim/vimrc ~/.vimrc
在.vimrc中加入如下内容, 可用gedit来编辑:
"关闭兼容功能
set nocompatible
"显示行号
set number
"编辑时 backspace 键设置为2个空格
set backspace=2
"编辑时 tab 键设置为4个空格
set tabstop=4
"设置自动对齐为4个空格
set shiftwidth=4
"搜索时不区分大小写
set ignorecase
"搜索时高亮显示
set hlsearch
另外一个比较高级的配置如下:
set nocompatible
syntax on
set showmode
set mouse=a
set encoding=utf-8
set t_Co=256
filetype indent on
set autoindent
set tabstop=2
set shiftwidth=4
set expandtab
set softtabstop=2
set number
set cursorline
set textwidth=80
set wrap
set linebreak
set wrapmargin=2
set scrolloff=5
set laststatus=2
set ruler
set showmatch
set hlsearch
set incsearch
set ignorecase
set spell spelllang=en_us
set nobackup
set noswapfile
set undofile
set backupdir=~/.vim/.backup//
set directory=~/.vim/.swp//
set undodir=~/.vim/.undo//
set autochdir
set visualbell
set noerrorbells
set history=1000
set autoread
set wildmenu
set wildmode=longest:list,full
效果如下:
vim的三种模式
1)一般模式(光标移动、复制、粘贴、删除)
2)编辑模式(编辑文本)
3)命令行模式(查找和替换、保存和退出)
注意:
1)当不知道处于何种模式时,按ESC键返回到一般模式。
vim的基本操作
打开文件、新建文件、保存文件
vim 文件名
如果文件存在,输入结束后,:wq保存并退出文件
如果文件不存在,输入结束后,:wq就可以新建并保存文件
在编辑完成时,返回一般模式,
1)输入:w则保存文件,如果已经保存文件,输入:q则退出文件
2)直接输入:wq保存并退出
3)如果不想保存被修改的内容,则:q!强制退出。
进入编辑模式
- i(在光标前开始插入文本)
- a在光标后开始插入文本
- o(在当前行之下新开一行,并到行首)
光标移动
在一般模式下,hjkl这四个按键就可以移动光标:
- h(左), j(下), k(上), l(右)
快速的定位到某一行:
- ngg光标移至第n行的行首(n为数字),
- 如1gg就跳到第一行的行首,就是文件头
- 如2gg就跳到第二行的行首
- G转至文件结尾
注意:ngg和G是在一般模式
在某一行如何快速定位到某一列:
- 0(数字零)光标移至当前行行首
- $光标移至当前行行末
- fx搜索当前行中下一个出现字母x的地方
注意:0、$、fx是在一般模式
文本复制、粘贴、删除、撤销
-
yy复制当前行(y:yank(复制))
-
nyy复制当前行及其后的n-1行(n是数字)
-
使用P键来粘贴(p:paste)
-
dd 删除光标所在行(d:delete)
-
ndd 删除当前行及其后的n-1行(n是数字)
-
按u键来撤销上一步操作
-
x删除光标所在位置的字符
注意:yy/nyy/dd/ndd/x/u都是在一般模式。
查找和替换
- /pattern 从光标开始处向文件尾搜索pattern,后按下n或N
- 在/pattern之前先跳到第一行则进行全文件搜索
注意:
- n在同一个方向重复上一次搜索命令
- N在反方向重复上一次搜索命令
- n(N)来源于next
:%s/p1/p2/g将文件中所有的p1均用p2替换
:%s/p1/p2/gc替换时需要确认
s:substitute替换
g:global全局
c:confirm确认
举例
1)用vi 新建一个文件test2.txt,然后输入”welaome to the world of vi.”,并保存。
2)由于拼写错误,需要将其中的welaome中的a替换成c。
3)在上步的基础上,复制第一行到第二行和第三行。
4)在上步的基础上,删除第三行的全部内容。
5)在上步的基础上,搜索出现vi的地方。
6)在上步的基础上,将字符串vi替换成vim。
7)保存并退出。
小结
vi编辑器有三种模式
1)一般模式(光标移动、复制、粘贴、删除、撤销)
hjkl、ngg/G、0、$、fx
yy/nyy
p
dd/ndd、x
u
2)编辑模式(编辑文本)
i a o
3)命令行模式(查找和替换、保存退出文件)
/pattern、:%s/p1/p2/gc、:wq
参考
- 韦东山老师的讲解
- Vim 配置入门