vim编辑器的三种模式
- 命令模式:用于进行复制,黏贴等操作
- 输入模式:往文件里输入文本的模式
- 底行模式:用于进行保存文本,退出等操作
vim的使用
操作 | 作用 |
---|---|
vim xxx | 使用vim创建并打开xxx文件,打开后默认是命令模式 |
vim +4 xxx | 打开xxx文件,并让光标定位到第四行 |
vim +/hehe xxx | 打开xxx文件,并让光标定位到hehe第一次出现的位置,使用按键n可以在hehe多次出现的位置切换 |
vim aa bb cc | 创建并打开aa,bb,cc三个文件,默认是先打开aa文件,可以使用:n切换到下一个文件,:N切换到上一个文件 |
按键i | 切换到输入模式 |
ESC | 切换到命令模式 |
:wq | 在命令模式下,输入:表示进入底行模式,w表示保存文件,q表示退出该文件 |
命令模式常用指令:
指令 | 作用 |
---|---|
h | 向左移动光标 |
j | 想下移动光标 |
k | 向上移动光标 |
l | 向右移动光标 |
ctrl+f | 向下翻页(front) |
ctrl+b | 向上翻页(back) |
ctrl+d | 向下翻半页(down) |
ctrl+u | 向上翻半页(up) |
dd | 删除光标所在当前行 |
o | 在光标所在行下方插入一行并切换到输入模式 |
yy | 复制光标所在当前行 |
p | 在光标所在行的下方黏贴 |
P | 在光标所在行的上方黏贴 |
底行模式常用指令:
指令 | 作用 |
---|---|
:! | 表示强制执行 |
:ls | 列出打开的所有文件 |
:15 | 光标定位到15行 |
/xxx | 从光标位置开始向后搜索xxx字符串 |
?xxx | 从光标位置开始向前搜索xxx字符串 |
vim命令模式下,键位指令图
VIM设置
临时更改设置
如:取消高亮
永久更改
- 针对所有用户:vim /etc/vimrc 中找到syntax on 改为off即可永久取消高亮
- 针对某个用户:在用户家目录下创建.vimrc文件,加入syntax on即可
常见功能
使用set xxx进行设置的,如要取消,可以试着在前面加no,如 set noxxx
功能 | 如何配置 |
---|---|
代码高亮 | syntax on |
显示行号 | set number |
自动缩进 | set autoindent 或 set cindent |
自动加入文件头
vim /etc/vimrc,加入以下代码
autocmd BufNewFile *.py,*.sh exec ":call SetTitle()"
68 "新建.py,.sh,
69 """定义函数SetTitle,自动插入文件头
70 func SetTitle()
71 "如果文件类型为.py文件 "
72 if &filetype == 'python'
73 call setline(1, "\#coding=utf8")
74 call setline(2, "\"\"\"")
75 call setline(3, "\# Author: Mr.zhou")
76 call setline(4, "\# Created Time : ".strftime("%c"))
77 call setline(5, "")
78 call setline(6, "\# File Name: ".expand("%"))
79 call setline(7, "\# Description:")
80 call setline(8, "")
81 call setline(9, "\"\"\"")
82 call setline(10,"")
83 endif
84 if &filetype == 'sh'
85 call setline(1, "\#coding=utf8")
86 call setline(2, "\#*************************************************************************")
87 call setline(3, "\# @Author: waleking")
88 call setline(4, "\# @Created Time : ".strftime("%c"))
89 call setline(5, "")
90 call setline(6, "\# @File Name: ".expand("%"))
91 call setline(7, "\# @Description:")
92 call setline(8, "")
93 call setline(9, "\# ************************************************************************/")
94 call setline(10,"\#!/bin/bash")
95 endif
96 endfunc