从昨天晚上顺利完成从虚拟机用户到双系统用户的转型之后,现在似乎再次进入到了ubuntu
的探索阶段,
之前有学过一段时间vim怎么用,但是因为太久远了,也没写博客,就这么忘掉了。
基础操作(打开文件,写入,保存)
打开文件
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 | 移动到这个档案的最后一行 |
nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) |
gg | 移动到这个文件的第一行 |
n | n 为数字。光标向下移动 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博客