Vim
Contents
0 初识vim
0.1 简介
在这个蔚蓝色的星球上,流传着两大神器的传说:Emacs是神的编辑器,而Vim是编辑器之神。
VIM , 全称 Vi Improved , Vi的增强版 。
Vi 在 1976 年发布,奉行 Unix 传统的“Do one thing and do it well”哲学,每个程序只做一件事但做到最好,通过程序之间的配合得到强大的功能。
Emacs则奉行“Everything at reach”设计哲学,通过强大的扩展性,达到在一个软件里做所有的事。Emacs可以用来编辑文档、时间管理、浏览图片、阅读pdf、听音乐、写程序、运行程序、调试程序、接受发送邮件、看新闻组、玩游戏、管理系统、Telnet/FTP、版本控制、写LaTex…被称为“伪装成编辑器的操作系统”。
江湖中有一句话: “ 世界上的程序员分三种,一种使用Emacs,一种使用Vim,剩余的是其它” 。
0.2 模式
vim有5中基本模式,分别是
- Normal Mode 也就是最一般的普通模式,默认进入vim之后,处于这种模式。
- Visual Mode 一般译作可视模式,在这种模式下选定一些字符、行、多列。 在普通模式下,可以按v进入。
- Insert Mode 插入模式,其实就是指处在编辑输入的状态。普通模式下,可以按i进入。
- Select Mode 在gvim下常用的模式,可以叫作选择模式吧。用鼠标拖选区域的时候,就进入了选择模式。 和可视模式不同的是,在这个模式下,选择完了高亮区域后,敲任何按键就直接输入并替换选择的文本了。 和windows下的编辑器选定编辑的效果一致。普通模式下,可以按gh进入。 ps:这种模式好无用啊
- Command-Line/Ex Mode 就叫命令行模式和Ex模式吧。两者略有不同,普通模式下按冒号(:)进入Command-Line模式,可以输入各种命令, 使用vim的各种强大功能。普通模式下按Q进入Ex模式,其实就是多行的Command-Line模式。 ps:经常使用EX模式的都是神阶vimer
注:本文中所说的快捷键若无特殊说明则是Normal Mode下的模式
1 vim install
1.1 windows
在github中下载window环境的.zip安装包
解压后添加环境变量,右键vim.exe
,打开属性,复制位置
中的路径至path变量
1.2 macOS
利用homebrew安装
|
|
1.3 VSCode-Vim插件配置
在setting.json中新增:
|
|
2 vim 基本操作
操作描述 | 键位 | 备注 |
---|---|---|
移动光标 | h 、j 、k 、l |
|
删除字符 | x |
|
插入字符 | i (光标前)、a (光标后)、A (行末) |
进入INSERT模式 |
从光标处删除到单词末尾 | dw (下一个单词起始)、de (仅末尾) |
可指定删除次数,如d2w |
从光标处删除到行末 | d$ |
|
至行首或行尾 | 0 (行首)、$ (行尾)、^ (行内容开头) |
|
删除(剪切)整行 | dd |
可指定行数,如d2d 或2dd ddp 本行与下一行替换位置 |
撤销 | u (撤销上次指令)、U (恢复整行状态) |
|
重做 | ctrl+r |
|
粘贴 | p |
|
替换字符 | r (替换单个字符)、R (连续替换多个) |
|
更改 | c4e 、c2w 、c0 、c$ |
同d ,支持添加数字重复次数 |
显示当前光标位置及文件状态信息 | ctrl+g |
|
至文件开头或末尾 | gg (开头)、G (末尾) |
|
查找字符串 | / (向后查询)、? (向前查询) |
n 移至下一处,N 移至上一处 |
查找配对括号 | % |
|
替换命令 | :s/old/new (替换光标所在行的第一个匹配) |
:s/old/new/g 全行替换:%s/old/new/g 全局替换:%s/old/new/gc 全局自定义替换 |
另存为 | :w FILENAME |
|
行插入 | o (下行插入)、O (上行插入) |
|
复制 | y 复制选中部分 |
y$ 复制光标到行末的部分yw 复制光标到单词结尾的部分yy 复制当前整行 |
设置查询选项 | :set xxx |
:set ic 查找时忽略大小写:set is 查找短语时显示部分匹配:set hls 高亮显示全部匹配短语在选项前加 no 可关闭选项 |
自动补全命令 | Tab |
|
替换字符(并进入输入模式) | s (删除单个字符并进入输入模式)、S (删除整行并进入输入模式) |
|
选中 | v (进入可视模式选中光标经过的部分)、V (进入可视模式并选中光标经过的全部行) |
|
跳转至第n行 | :n |
|
查找最近的字符 | f (向后找)、F (向前找) |
|
移动光标至页面不同位置 | H (页面顶部)、M (页面中部)、L (页面底部) |
|
合并两行 | J |
即删除两行间换行符 |
调整缩进 | < (反缩进)、> (正缩进) |
NORMAL模式下 |
翻页 | ctrl+b (下一整页)、ctrl+f (上一整页) |
ctrl+d (翻下半页)、ctrl+u (翻上半页) |
光标位置 | zz (移动光标所在行至屏幕中央) |
zt (屏幕最上)、zb (屏幕最下) |
滚轮回滚 | ctrl+e (向下回滚一行)、ctrl+y (向上回滚一行) |
Author gsemir
LastMod 2021-10-12