Linux笔记(17)——VIM编辑器

时间:2022-07-14 17:03:34

vim编辑器的三种模式

  1. 命令模式:用于进行复制,黏贴等操作
  2. 输入模式:往文件里输入文本的模式
  3. 底行模式:用于进行保存文本,退出等操作

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命令模式下,键位指令图

Linux笔记(17)——VIM编辑器

VIM设置

临时更改设置

如:取消高亮
Linux笔记(17)——VIM编辑器

永久更改

  1. 针对所有用户:vim /etc/vimrc 中找到syntax on 改为off即可永久取消高亮
  2. 针对某个用户:在用户家目录下创建.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