简单介绍

可在终端下使用采用纯键盘操作的一款文本编辑器,号称编辑器神,可以升级(二次开发),可以扩展(安装插件)。

基本用法

进入vim:vim file.c 文件存在则打开,不存在则创建。
输入i:进入编辑模式,编写代码。
保存退出:按Esc退出编辑模式,输入ZZ保存退出。

三大模式

正常模式:一般用于阅读文件,或者使用快捷键快速修改文件。
插入模式:一般用于编辑文件,输入内容。
行底模式:一般用于对vim进行配置,或者执行一些高级操作。

模式切换

正常 输入i-> 插入
插入 ESC-> 正常
正常 输入:-> 行底
行底 ESC-> 正常

正常模式的常用操作

光标移动

h:左
j:下
k:上
l:右
gg :光标跳转到第一行
G :光标跳转到最后一行
n+:回车 光标向下跳转n
n- :光标向上跳转n
nG :跳转到第n行
home :光标跳转到行首
end :光标跳转到行首
PgUp :向上翻一页
PgDn :向下翻一页

删除代码

x :删除一个字符
nx :删除n个字符
dw/de :删除一个连续的字符串
d$ :从当前光标删除到行尾
d^ :从当前光标删除到行首
dd :删除一行
ndd :删除n行
dG :从当前光标删除到末尾
d1G :从当前光标删除到开头

复制代码

yy :复制一行
nyy :复制n行
p :粘贴到当前光标下面
P :粘贴到当前光标上面

替换代码

r :替换一个字符
cw :替换一个单词
R ::进入替换模式

撤销操作

u :撤销上次操作
U :撤销该行的所有操作
Ctrl+r :取消撤销操作

进入插入模式

i :在当前光标前进入插入模式
I :光标跳转到行首,进入插入模式
a :在当前光标后进入插入模式
A :光标跳转到行尾,进入插入模式
o :在当前行下面插入一个空白行,进入插入模式
O :在当前行上面插入一个空白行,进入插入模式

插入模式的常用操作

Ctrl+p/n :自动补全,取变量名、函数名时尽量开头不同。
Ctrl+i :自动缩进,相当于Tab键功能。
Ctrl+j/m :相当于回车键功能。
Ctrl+c :相当于ESC键功能。
Ctrl+x :编译执行
Ctrl+g :GDB调试程序

行底模式下的操作

w :写入
q :退出
wq :保存退出
q! :强制退出
x :保存退出
X :加密码,set key= 删除密码,注意:wq保存退出才有效。
!cmd :执行系统命令
/key n :向下查找,N向上查找
set nu :显示行号
set nonu :不显示行号
注意:在行底模式下对vim的设置只是临时有效,如果想长期有效需要把这些设置语句写入配置文件(~/.vimrc)中。

vim的基础配置

在终端下输入vim ~/.vimrc

" 显示行号
set number

" tab键宽度
set tabstop=4

" 设置自动缩进
set autoindent

" 设置智能缩进
set smartindent

" 设置自动缩进的宽度
set shiftwidth=4

" 设置自动保存
set autowrite

" 设置不产生临时文件
set noexpandtab

" 在插入模式下快速返回正常模式
imap jj

" 定义保存退出函数
func! SaveExit()
exec “wq”
endfunc

map :call SaveExit()
imap :call SaveExit()
vmap :call SaveExit()

" 定义编译执行函数
func! RunCode()
exec “w”
if &filetype==“c”
exec “!gcc % && ./a.out”
endif
endfunc

map :call RunCode()
imap :call RunCode()
vmap :call RunCode()

" 添加头文件和Main函数
func! InsertMain()
if &filetype==“c”
call setline(1,"#include <stdio.h>")
call setline(2,"")
call setline(3,“int main(int argc,cosnt char* argv[])”)
call setline(4,"{")
call setline(5,"\t")
call setline(6,"}")
exec “5”
endif
endfunc
map :call InsertMain()

思维导图vim编辑器基础

相关文章: