vim使用笔记

从昨天晚上顺利完成从虚拟机用户到双系统用户的转型之后,现在似乎再次进入到了ubuntu的探索阶段,

之前有学过一段时间vim怎么用,但是因为太久远了,也没写博客,就这么忘掉了。

8WpeeI.gif

基础操作(打开文件,写入,保存)

打开文件

vim <filename>

这个命令在文件存在的时候是打开文件,在文件不存在的时候是新建文件,还可以通过文件前的路径名来打开不同位置的文件。

写入 & 保存

命令模式下

  • i 切换到编辑模式
  • x 删除当前光标处的字符
  • : 切换到底线命令模式

移动光标

操作作用
h 或 (←)光标向左移动一个字符
j 或 (↓)光标向下移动一个字符
k 或 (↑)光标向上移动一个字符
l 或 (→)光标向右移动一个字符
多次移动<移动次数><指令>,例如“30j
Ctrl + F屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
Ctrl + B屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
Ctrl + D屏幕『向下』移动半页
Ctrl + U屏幕『向上』移动半页
+光标移动到非空格符的下一行
-光标移动到非空格符的上一行
H光标移动到这个屏幕的最上方那一行的第一个字符
M光标移动到这个屏幕的中央那一行的第一个字符
L光标移动到这个屏幕的最下方那一行的第一个字符
G移动到这个档案的最后一行
nGn 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
gg移动到这个文件的第一行
nn 为数字。光标向下移动 n 行

搜索替换

  • /word: 从光标向下寻找word
  • ?word: 从光标向上寻找word
  • n: 正向寻找下一个word
  • N: 反向寻找下一个word

此处的正向反向取决于上一条命令,如果上一条命令是向下查找,那么正向便是向下,反向便是向上;反之亦然。

删除 & 复制 & 粘贴

  • x: 向后删除一个字符
  • dd: 删除当前行

该两项均可配合前缀n使用,即向下删除n个字符或者n行

d1G删除光标所在到第一行的所有数据
dG删除光标所在到最后一行的所有数据
d$删除游标所在处,到该行的最后一个字符
d0那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符

yy为复制指令,其使用方式与dd相同,也是有n, 1G, G, $, 0等东西可以进行修饰。

  • p: 粘贴到所在行的下方(小写)

  • P: 粘贴到所在行的上方(大写)

  • u: 复原上一条指令,(Ctrl+z)

  • .: 重复上一条指令

底线命令模式下

  • w 保存文件
  • q 退出程序(vi/vim)

以上两条指令,均可在其后面加上!进行修饰,表示强制进行。

命令格式功能
:w另存为
:r将另一个文件粘贴到光标下方
:n1,n2 w将n1行到n2行保存为一个文件

代码高亮与自动缩进

更改配置文件达到目的效果

设置文件在/etc/vim/vimrc

vim ~/.vimrc
set smartindent #自动缩进
set shiftwidth=4 #设定tab宽
set expandtab #将tab转成space
#如果要将已有的tab转换成space的话,可以在expandtab之后输入,:retab!
set tabstop=4 #读到文档中\t时,要解释为4个空白
set sotftabstop=4 #在编辑模式下,按下tab会展开成为4个space

syntax enable #开启语法高亮
set nu #显示行数

其他基本配置

set nocompatible 
#不与vi兼容,采用vim自己的操作命令

set mouse=a 
#支持使用鼠标

set encoding=utf-8 
#使用utf-8编码

set t-Co=256 
#启用256色

filetype indent on 
#开启文件类型检查,并且载入与该类型对应的缩进规则。比如,如果编辑的是.py文件,Vim 就是会找 Python 的缩进规则~/.vim/indent/python.vim。

set cursorline
#光标所在的当前行高亮

学习连接

有些是自己探索的,但是大部分还是抄的dalao博客

http://www.ruanyifeng.com/blog/2018/09/vimrc.html