目录

VI/VIM 编辑器

VIM 的模式

编辑多个文件和窗口控制

为什么要要分屏打开文件,主要是方便在多个文件之间转移内容,一个进程下打开多个文件,内容缓冲区是共用的,方便将一个文件的内容复制到另外一个文件中。

1. 打开第一个文件

vim file-1.txt

2. 分屏打开第二个文件

:vs file-2.txt 
# 在VIM的命令模式下输入,即一个ESC键,然后键入冒号,上面那个冒号是命令指示符,代表已经进入VIM的命令模式
# 这个会打开左右两个分屏,左侧分屏是file-1.txt,右侧分屏是file-2.txt
# 如果只想打开一个空的分屏,只需要打入 :vs 即可
:vs
# 分成上下两个分屏
:sp file-2.txt

3. 切换焦点窗口

在一个分屏下复制的内容可以在另外一个分屏上粘贴的。

4. 关闭分屏,命令模式下键入 q 并回车即可

内容编辑

定位&光标

没有特别说明的情况下,VIM应该处于普通模式下,在其他模式下按ESC返回普通模式

1. 上下左右移动光标

2. 特殊移动

查找&替换

查找

替换

常用标志位

复制粘贴

复制

当命令变为 c 时,比如 ca{ 会删除此代码块,并进入插入模式

粘贴

只需在普通模式下按 p(小写),缓冲区内容会添加到光标下方一行

还有些其他用法,遇到再说

折叠管理

在写JSON或者JAVASCRIPT的时候,有可能会遇到一大堆的括号,然后大量的缩进,根本搞不清楚哪个括号是对应哪个的,因此将不专注的部分折叠起来,就能专注到需要编辑的部分了。

折叠模式

切换模式和帮助

 
:set foldmethod=manual
:set foldmethod=syntax
:set foldmethod=indent
:set foldlevel=1 #折叠时显示缩进
:mkview #保存折叠信息
:loadview #读取折叠信息
:help folding
:help fold-marker
:help fold-syntax
:help fold-indent
:help fold-manual

常见操作

其他快捷键:在Syntax或Indent模式下可能会遇到

常用命令

1.显示行号

 :set nu 

2.窗口管理的,之前已经介绍过

3.查找替换的

4. 保存&退出

:w file.txt 保存为file.txt, 直接保存的话,直接w就可以
:wq 保存并退出
:q! 不保存并退出

一个示例 vimrc 文件

filetype on
syntax on
set shiftwidth=2
set expandtab
set number
set ts=2
set autoindent
set breakindent
nnoremap <space> za
nnoremap <tab> >>

augroup filetype_python
  autocmd!
  autocmd FileType python setlocal foldmethod=indent
  autocmd FileType python set foldlevelstart=0
  autocmd FileType python setlocal foldmarker=---,---
augroup END