1. 背景及安装
vim 实际上是 vi improved
linux和mac一般是自带vim的
没有的话linux就试试
sudo apt install vim
2. 基础使用
#打开一个文件
vim client.c
#退出
:q
#不保存直接退出
:!q
#写入(保存)并退出
:wq
不同模式,刚开始进入的是Normal mode
使用i或者l进入insert mode,在insert mode 按esc退出insert mode
- i 是在当前光标前
- a 是当前字符的后一个位置
- o 是另起一行;
- shift i 是在当前行的最前面
- 大写O是把下面的行整体往下挪一行,然后开始在新的一行写
# 视觉模式,使用v进入
# 进入之后,可以进行左右按键进行选中,然后进行对应操作
# 删除 d ; dd是删除整行,同样支持number + dd ; 大写D是删除该行光标所在的以及后面的内容;dw是delete a word ; 想要删除多个单词,比如删除5个单词,直接d5w ; 使用了dd删除一行后,想要继续删除,可以使用. ; dd的同时其实复制了这一行,可以直接p,其实是剪切
# 拷贝 y
# 粘贴 p ;同时支持 number + p 意思是粘贴n次 ; 要注意的是,如果直接p是粘贴到光标行的下一行,如果大写p的话粘贴的是光标行的上一行
# 修改单字符 r
# cc可以删除并进去插入模式
# 跳转单词 w :如果中间是以空格/连字符分隔的话,可以进行一个快速跳转使用w,使用W的话会把-连接的也当成一个单词
# 反向跳转单词 b : w的反方向跳转
# 跳转到单词尾部 e
# 并且进行插入模式: ciw: change in word ; dw : 删除一个单词的后半部分; diw:delete in word 删除一整个单词
# !!ciw很实用,可以快速的speed up 编码速度
# 跳转到某行的开头 00
# 跳转到某行的结尾 $
# 快速删除()中的内容,比如print("sa"d,dasdas,,dsa)括号的内容,使用ci(
# 可以用于改变函数传参()中的内容
# 快速跳转函数结尾 %, 在{的地方使用,会跳到} ; 使用d % 会删除括号里的所有内容
# 快速向右向左缩进,>>向右缩进,<<向左缩进
# 鼠标居中 zz
# 替换文中的所有的单词使用 :%s/charachter/symbol/g
# 可以用视觉模式选择以后 s/character/symbol/g, 不需要百分号
# :reg 可以看到各个寄存器里的内容
# 查找某个具体单词,:/单词
复杂视觉模式
# 进行全选行的视觉模式
shift + v
3. 简单设置
# 激活行号
set number
# 激活相对行号,如果熟悉 数字箭头 跳转,这是一个很好用的功能
# 只有当前行显示的真的行号,其他行都是相对行号
set realtivenumber
## 设置鼠标为活动模式
set mouse=a
配置一个vim文件,这样操作就都是持久的了
vim ~/.vimrc # 编辑一个配置文件
# 以下是该配置文件的信息
set number # 启用行号显示。
set relativenumber # 启用相对行号。
set tabstop=4 # 输入Tab 时,Vim 会显示 4 个空格的宽度。
set shiftwidth=4 # 设置缩进时的宽度为 4 个空格。
set autoindent # 启用自动缩进。缩进对编写结构化代码会有作用。
set mouse=a
colorscheme slate
# !!!以上使用井号写的解释不要放在vimrc文件中,会出现一些警告
# 如果以上的背景颜色没有变,请再加上下面两条指令
set termguicolors " 启用 TrueColor(如果你的终端支持)
set t_Co=256 " 启用 256 色
有困难的时候,可以google一下vim cheatsheet,而不用每次都观看视频
4. 快捷键
本来可以靠上下慢慢移动,使用 数字 + 箭头,可以实现快速跳转 ex. 5 上箭头 -> 向上跳5行
# 快速跳转
number + arrow
# 撤销undo操作,可以多次撤回,也可以多次反撤回,只需要多按几次即可
esc回到常规模式后按u,就是撤销操作
# 重新做,也就是撤销的反面
ctrl + r
# 同样支持数字操作
比如NUMBER + UNDO,连续做几次撤销操作
# 跳转到开头
gg
# 跳转到末尾
shift g
# 跳转到某一行
number + G 或者 直接在下面行里些行号
# 设置跳转点
m + 任意 -> ' + 前面设置的按键
5. neovim
sudo apt install neovim