命令模式
- 保存退出:
ZZ
若果文件不存在,退出时不会创建新的文件 - 代码格式化:
gg=G
- 光标移动
- 上下左右:
hjkl
- 光标移动到行首:
0
- 光标移动到行尾:
$
- 光标移动到文件开头:
gg
- 光标移动到文件末尾:
G
- 光标跳转到某行:
行号+G
行号回车
:当前行向下跳转行号数行
- 上下左右:
- 删除命令
- 删除字符:
x
:删除光标后面的字符;X
:删除光标前面的字符 - 删除单词(删除光标后面到单词尾):
dw
- 删除某行光标前字符串:
d0
- 删除某行光标后字符串:
d$
- 删除/剪切行:
dd
- 删除/剪切多行:
数字+dd
- 删除字符:
- 撤销反撤销
- 撤销:
u
- 反撤销:
ctrl+r
- 撤销:
- 复制粘贴
- 复制:
yy
- 多行复制:
数字+yy
- 粘贴(光标下一行):
p
- 复制:
- 查找
/+查找内容
:当前行向下查找:n
向下跳转,N
向上跳转?+查找内容
:全局查找:n
向下跳转,N
向上跳转光标放到指定字符串+#
:指定字符串查找,不需要输入
- 替换
光标盖住的字符+r
:输入想要改写的字符
- 查看
man
内容- 光标放到指定字符串:
章节号+K
- 光标放到指定字符串:
可视模式:命令模式+v
命令模式复制粘贴剪切等,只能行处理。进入可视模式,可进行任意范围内内容的复制粘贴,命令模式按v
进入可视模式,移动光标,可选择文本操作范围,也就是可操作范围
- 复制:
y
- 删除/剪切:
d
- 粘贴:
p
光标后、P
光标前
命令模式进入编辑模式:
a
:在光标后插入
A
:在行末添加文本
i
:当前字符之前的插入
I
:行首插入
o
:实现在光标所在行的上方插入新行
O
:是现在光标坐在行的下方插入新行
末行模式::
- 保存退出
- 保存退出:
wq
/x
- 退出不保存:
q!
- 保存不退出:
w
- 退出:
q
- 保存退出:
- 替换
- 替换光标所在字符串:
s/旧的字符串/新的字符串
- 替换光标所在字符串所在行所有字符串:
s/旧的字符串/新的字符串/g
- 替换一个范围:
起始行号,结尾行号s/旧的字符串/新的字符串/g
行数范围内所有的旧字符替换为新的字符 - 全局替换:
%s/旧的字符串/新的/g
- 所有替换命令后加
c
,添加提示
- 替换光标所在字符串:
- 分屏
- 水平分屏:
sp
- 垂直分屏:
vsp
- 屏幕切换:
ctrl+ww
- 退出光标所在屏:
q
- 退出所有屏:
qall
- 保存所有屏:
wall
- 保存退出所有屏:
wqall
- 垂直分屏打开不同的文件:
vsp+文件名
- 打开多个文件并水平分屏显示:
vim -o +文件集合
- 打开多个文件并垂直分屏显示:
vim -O +文件集合
- 分屏显示打开其它文件但并不确定是否有没有:
!ls
- 查看当前路径:
!pwd
- 查看文件详尽信息:
!ls -l
- 水平分屏:
vim 配置文件
- 用户级别:当前用户可用
~/.vimrc
- 系统级别:所用用户打开都可用
etc/vim/vimrc
基本配置
"显示行号
set nu
"启动时隐去援助提示
set shortmess=atI
"语法高亮
syntax on
"使用vim的键盘模式
"set nocompatible
"不需要备份
set nobackup
"没有保存或文件只读时弹出确认
set confirm
"鼠标可用
set mouse=a
"tab缩进
set tabstop=4
set shiftwidth=4
set expandtab
set smarttab
"文件自动检测外部更改
set autoread
"c文件自动缩进
set cindent
"自动对齐
set autoindent
"智能缩进
set smartindent
"高亮查找匹配
set hlsearch
"背景色
set background=dark
"显示匹配
set showmatch
"显示标尺,就是在右下角显示光标位置
set ruler
"去除vi的一致性
set nocompatible
"允许折叠
set foldenable
"""""""""""""""""设置折叠"""""""""""""""""""""
"
"根据语法折叠
set fdm=syntax
"手动折叠
"set fdm=manual
"设置键盘映射,通过空格设置折叠
nnoremap <space> @=((foldclosed(line('.')<0)?'zc':'zo'))<CR>
""""""""""""""""""""""""""""""""""""""""""""""
"不要闪烁
set novisualbell
"启动显示状态行
set laststatus=2
"浅色显示当前行
autocmd InsertLeave * se nocul
"用浅色高亮当前行
autocmd InsertEnter * se cul
"显示输入的命令
set showcmd
"被分割窗口之间显示空白
set fillchars=vert:/
set fillchars=stl:/
set fillchars=stlnc:/
autocmd FileType make set noexpandtab
vim关键配置
vim
中配置常常把tab
键为四个空格,对于我们编写程序方便很多,但是在编写makefile
时,就会出现问题,tab键
会被空格替换掉,导致我们执行make
时,识别不到tab
,系统会报错,怎样避免这个问题呢?需要在vim
配置文件中添加下面这条命令即可
autocmd FileType make set noexpandtab