vim基本操作
命令模式下的操作
用户按下esc键,就可以使Vim进入命令模式下;当使用Vim打开一个新文件开始也是进入命令模式下。
保存退出
ZZ
:保存退出
代码格式化
gg=G
:代码的格式化
光标移动
h
:光标左移j
:光标下移k
:光标上移l
:光标右移w
:移动一个单词gg
:光标移动到文件开头G
:光标移动到文件末尾0
:光标移到到行首$
:光标移到到行尾nG
:行跳转,例12G,跳到12行处
删除命令
x
:删除光标后一个字符,相当于 DelX
:删除光标前一个字符,相当于 Backspacedw
:删除光标开始位置的字,包含光标所在字符d0
:本行所有内容,不包含光标所在字符D
/d$
:本行所有内容,包含光标所在字符dd
:(本质其实是剪切)ndd
/dnd
:从光标当前行向下删除指定的行数,如15dd、d15d都是向下删除15行v
/ctrl+v
:使用h、j、k、l移动选择内容,然后按d删除其中ctrl+v是列模式,v为非列模式
撤销和反撤销命令
u
:一步一步撤销,相当于word文档的ctrl+z
ctrl+r
:反撤销,相当于word文档的ctrl+y
复制粘贴
yy
:复制当前行nyy
:复制n行, 如10yy
、y10y
都是复制10行p
:在光标所在位置向下新开辟一行,粘贴P
:在光标所在位置向下新开辟一行,粘贴- 剪切操作:按
dd
或者ndd
/dnd
删除,将删除的行保存到剪贴板中,然后按p
/P
就可以粘贴了
可视模式
v
/ctrl+v
:使用h
、j
、k
、l
移动选择内容;使用d
删除;使用y
复制;使用p
粘贴到光标的后面;使用P
粘贴到光标的前面
替换操作
r
:替换当前字符R
:替换当前行光标后的字符
查找命令
/
:/xxxx
,从光标所在的位置开始搜索,按n
向下搜索,按N
向上搜索?
:?xxxx
,从光标所在的位置开始搜索,按n
向下搜索,按N
向上搜索#
:将光标移动到待搜索的字符串上,按n
向下搜索,按N
向上搜索shift+k
:在待搜索的字符串上按shift+k
或者K
,可以查看相关的帮助文档
切换到文本输入模式
从命令模式切换到文本输入模式只需输入如下命令:
i
:在光标前插入a
:在光标后插入I
:在光标所在行的行首插入A
:在光标所在行的行尾插入o
:在光标所在的行的下面新创建一行,行首插入O
:在光标所在的行的上面新创建一行,行首插入s
:S
:删除光标所在当前行,从行首插入- 按列模式插入:先按
ctrl+v
进入列模式,按hjkl
移动选定某列,按I
或者shift+i
向前插入,然后插入字符,最后按两次esc。
末行模式下的操作
从命令模式切换到末行模式,输入冒号(:
)
保存退出
q
:退出q!
:强制退出,不保存修改内容w
:保存修改内容,不退出wq
:保存并退出x
:相当于wq
替换操作
下面表格中old
表示原字符串,new
表示新字符串
:s/old/new/
:光标所在行的第一个old
替换为new
:s/old/new/g
:光标所在行的所有old
替换为new
:m,ns/old/new/g
:将第m行至第n行之间的old
全部替换成new
:%s/old/new/g
:当前文件的所有old
替换为new
:1,\$s/old/new/g
:当前文件的所有old
替换为new
:%s/old/new/gc
:同上,但是每次替换需要用户确认
快速翻屏
ctrl + u
:向下翻半屏(up)--光标向上移动ctrl + d
:向上翻半屏(down)--光标向下移动ctrl + f
:向上翻一屏(front)ctrl + b
:向后翻一屏(back)
在末行模式下执行shell命令
!shell命令
按下两次esc可以回到命令模式
分屏操作
在打开文件之后分屏:
sp
:当前文件水平分屏vsp
:当前文件垂直分屏sp 文件名
:当前文件和另一个文件水平分屏vsp 文件名
:当前文件和另一个文件垂直分屏ctrl-w-w
:在多个窗口切换光标wall
/wqall
/xall
/qall
/qall!
:保存/保存退出/保存退出/退出/强制退出分屏窗口
在打开文件之前分屏:
- 分屏:
vim -on file1 file2 …
- 垂直分屏:
vim -On file1 file2…
从末行模式切换回命令模式
vim的配置文件
用户级别配置文件
~/.vimrc
,修改用户级别的配置文件只会影响当前用户,不会影响其他的用户.
例如: 在用户的家目录下的.vimrc
文件中添加
set tabstop=4 ----设置缩进4个空格
set nu ----设置行号
set shiftwidth=4 ---设置gg=G缩进4个空格,默认是缩进8个空格
系统级别配置文件
/etc/vim/vimrc
,修改了系统级别的配置文件将影响系统下的所有用户。
⭐️说明: 由于linux是多用户操作系统,,不要影响其他用户。
个人配置文件
" 该配置文件参照阮一峰的网络日志当中配置
" http://www.ruanyifeng.com/blog/2018/09/vimrc.html
set nocompatible
syntax on
set showmode
set showcmd
set mouse=a
set encoding=utf-8
set t_Co=256
set autoindent
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
set number " 显示行号
" set relativenumber
" 显示光标所在的当前行的行号,其他行都为相对于该行的相对行号
set cursorline
set textwidth=80
set wrap
set linebreak
set laststatus=2
set ruler
set showmatch
set hlsearch
set ignorecase
set smartcase
set nobackup
set noswapfile
set noundofile
set autoread
set listchars=tab:»■,trail:■
set list
set wildmenu
set wildmode=longest:list,full
安装vimplus
vimplus离线安装
vimplus离线安装方式(在网络不佳情形,推荐):
sudo apt install vim-youcompleteme # 使用包管理器安装ycm
rm -rf ~/.vim ~/.vimplus # 删除本地之前已下载内容
将 vim.tar.gz 解压到自己家目录 ,将 vimplus.tar.gz 解压到自己家目录
然后再次进去.vimplus执行 ./install.sh即可
然后新建软连接
ln -s ~/.vimplus/.vimrc ~/.vimrc
安装报错解决
引用自 https://blog.csdn.net/sinat_16489689/article/details/109412955
错误描述
g:NERDTreeIndicatorMapCustom' is deprecated
[nerdtree-git-status] option ‘g:NERDTreeIndicatorMapCustom’ is deprecated, please use ‘g:NERDTreeGitStatusIndicatorMapCustom’ Press ENTER or type command to continue
问题定位
执行: sudo vim ~/.vimrc
在文件中找到如下代码(行号为我的文件中的行号)
308 let g:NERDTreeIndicatorMapCustom = {
309 \ "Modified" : "✹",
310 \ "Staged" : "✚",
311 \ "Untracked" : "✭",
312 \ "Renamed" : "➜",
313 \ "Unmerged" : "═",
314 \ "Deleted" : "✖",
315 \ "Dirty" : "✗",
316 \ "Clean" : "✔︎",
317 \ 'Ignored' : '☒',
318 \ "Unknown" : "?"
319 \ }
修改line 308 g:NERDTreeIndicatorMapCustom
为 g:NERDTreeGitStatusIndicatorMapCustom
307 " nerdtree-git-plugin
308 let g:NERDTreeGitStatusIndicatorMapCustom = {
309 \ "Modified" : "✹",
310 \ "Staged" : "✚",
311 \ "Untracked" : "✭",
312 \ "Renamed" : "➜",
313 \ "Unmerged" : "═",
314 \ "Deleted" : "✖",
315 \ "Dirty" : "✗",
316 \ "Clean" : "✔︎",
317 \ 'Ignored' : '☒',
318 \ "Unknown" : "?"
319 \ }
问题解决!
cd wbash: cannot create temp file for here-document: Permission denied
vimplus在线安装
vimplus在线安装方式(国内网络环境下失败率太高,不推荐):
sudo apt install git
git clone https://github.com/chxuan/vimplus.git ~/.vimplus
cd ~/.vimplus
./install.sh
速度慢,可以把git换为
git clone https://gitee.com/cskaoyan123/vimplus.git ~/.vimplus
函数自动跳转
参考 https://blog.csdn.net/ballack_linux/article/details/71036072
wd54期中vim的课件 点击查看