# EasyVim **Repository Path**: yugr/EasyVim ## Basic Information - **Project Name**: EasyVim - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-16 - **Last Updated**: 2023-11-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EasyVim Make Vim easy to use. EasyVim is only for basic text/code browsing and simple code editing with minimal workload. If you want to use tags to source your code, ctags is needed and universal-ctags is recommanded. If you want to turn vim into an IDE, try EasyNvim. I've tried many lsp configurations in vim such as vim-lsp, ALE. They suck. It will be a better idea to use NeoVim for heavy developing. Many configurations turn nvim into an IDE with excellent coding experience. EasyNvim is one of them. ![EasyVim](./EasyVim.png) ## Install Installation will download plugins from github. A VPN may be needed in mainland China. ```bash git clone https://github.com/yuesong-feng/EasyVim.git cd EasyVim/ ./install.sh vim :PlugInstall ``` **下列快捷键可能随时有变动,以github主页上为准。** ## 模式 | 快捷键 | 原指令 | 描述 | ----- | ----- | ---- | | ESC或CTRL-[ | 返回到命令模式 | | i | 在光标位置插入 | | a | 在光标后一个位置插入 | | I | 在行首插入 | | A | 在行尾插入 | | o | 在下方新建一行并插入 | | O | 在上方新建一行并插入 | | s | 删除光标字符并插入 | | S或cc | 删除光标所在行并插入 | | v | 进入可视模式 | | V | 进入可视行模式,此时会整行选中 | | CTRL-V | 进入可视块模式,此时会竖行选中,按I进入列插入模式 | | R | 进入替换模式 | | gi | 在上一次插入模式的位置插入 ## 光标 | 快捷键 | 原指令 | 描述 | ----- | ----- | ---- | | [n]k或j或h或l | 上下左右移动,前面的n表示移动多少单位 | | [n]w | 右移到下一个单词的开头 | | [n]e | 右移到当前或下一个单词的词尾 | | [n]b | 左移到当前或上一个单词的词头 | | [n]ge | 左移到上一个单词的词尾 | | [n]W或E或B或gE | 同上面四行,但单词仅以空格分割,小写则以标点和空格分割 | ;h | ^ | 移动到行首第一个非空白字符 | ;l | $ | 移动到行尾 | | 0 | 移动到行首 | | [n](或) | 向前(后)移动一个(n个)句子(标点符号分割) | | [n]{或} | 向前(后)移动一个(n个)段落(空行分割) | | +或\ | 移动到下一行的首个非空字符 | | - | 移动到上一行的首个非空字符 | | gg或G | 移动到文件首(或文件尾) | | {n}gg或{n}G或:{n} | 移动到第n行 | | {n}% | 移动到文件的 n% 处 | | {n}\| | 移动到当前行的第n列 | | gm | 移动到当前行的中间 | | M或H或L | 光标移动到屏幕中间一行/第一行/最后一行 | | zz或zt或zb | 将当前行居中/显示为顶行/显示为底行 | | [n]zh或[n]zl或z[n]h或z[n]l | 向左(右)滚动一行(n行) | | zH或zL | 向左(右)滚动半屏 | | CTRL-E或CTRL-Y | 向下(上)滚动一行 | ;j或;k | CTRL-D或CTRL-U | 向下(上)滚动半屏 | | CTRL-F或CTRL-B | 向下(上)滚动整屏 ## 搜索 | 快捷键 | 原指令 | 描述 | ----- | ----- | ---- | | [n]f{char} | 移动到行内下一个char字符处,前面加n表示到下n个 | | [n]F{char} | 移动到行内上一个char字符处,前面加n表示到上n个 | | [n]t{char} | 移动到行内下一个char字符前,前面加n表示到下n个 | | [n]T{char} | 移动到行内上一个char字符后,前面加n表示到上n个 | | ;或, | 移动到下(上)一个行内搜索的结果(f/F/t/T),由于;被设置为leader键,按下后要等一秒才会执行跳转 | | /或? | 正向(或反向)搜索,输入回车重复上一次搜索 | | n或N | 下一个(或上一个)搜索结果 | | *或# | 向后(前)搜索当前光标下的单词 | | gd | 搜索当前光标下的单词 | ;/ | :noh | 取消搜索结果高亮 | | CTRL-P | 模糊搜索当前目录下的文件 ## 编辑 | 快捷键 | 原指令 | 描述 | ----- | ----- | ---- | | u或CTRL-R | 撤销(反撤销) | | x或X | 删除当前(向前删除)字符 | | [n]r{char} | 替换(n个)字符为char | | J | 删除当前行尾的换行符 | d;l | D或d$ | 剪切当前行到行尾 | | [n]dd | 剪切n行,没有n表示剪切一行 | | [n]yy | 复制n行,没有n表示复制当前行 | | [n]cc | 改写n行,没有n表示复制当前行,同S | | p | 在当前位置后粘贴 | | P | 在当前位置前粘贴 | ;c\ | | 注释/反注释当前行或选中内容 | | :w | 保存 | | :q | 退出 | | c{}或d{}或v{}或y{} | 更改、删除、选中、拷贝{ }作用域中的内容,作用域在下方表格中 ## c,d,v,y命令后的作用域 | 快捷键 | 指令 | 描述 | ----- | ----- | ---- | | [n]k或j或h或l | 上下左右,前面的n表示移动多少单位 | | [n]w | 到下一个单词的开头 | | [n]e | 到当前或下一个单词的词尾 | | [n]b | 到当前或上一个单词的词头 | | [n]ge | 到上一个单词的词尾 | | [n]W或E或B或gE | 同上面四行,但单词仅以空格分割,小写则以标点和空格分割 | ;h | ^ | 到行首第一个非空白字符 | ;l | $ | 到行尾 | | 0 | 到行首 | | (或) | 向前(后)一个句子(标点符号分割) | | {或} | 向前(后)一个段落(空行分割) | | gg或G | 移动到文件首(或文件尾) | | {n}gg或{n}G或:{n} | 移动到第n行 | | f{char}或t{char} | 光标位置到char 之处(之前) | | iw | 整个单词(不包括分隔符) | | aw | 整个单词(包括分隔符) | | iW | 整个空格分割的单词(不包括分隔符) | | aW | 整个空格分割的单词(包括分隔符) | | is | 整个句子(不包括分隔符) | | as | 整个句子(包括分隔符) | | ip | 整个段落(不包括前后空白行) | | ap | 整个段落(包括前后空白行) | | ib或i)或i( | 小括号内 | | ab或a)或a( | 小括号内(包含小括号本身) | | iB或i}或i{ | 大括号内 | | aB或a}或a{ | 大括号内(包含大括号本身) | | i]或i[ | 中括号内 | | a]或a[ | 中括号内(包含中括号本身) | | i' | 单引号内 | | a' | 单引号内(包含单引号本身) | | i" | 双引号内 | | a" | 双引号内(包含双引号本身) | | [n]i) | 往外n层小括号内 | | [n]a) | 往外n层小括号内(包含小括号本身) | | [n]f) | 到第n个小括号处 | | [n]t) | 到第n个小括号前 ## 窗口与跳转 | 快捷键 | 指令 | 描述 | ----- | ----- | ---- | | CTRL-O或CTRL-I | 返回光标上一个/下一个所在位置 | ;n | :NERDTreeToggle | 打开目录 | ;m | :TagbarToggle | 打开tag列表 | ;[1-9] | | 转到第n个buffer | | :bd | 关闭当前buffer | | :bn | 下一个buffer | | :bp | 上一个buffer | | gt | 跳转到下一个tab | | gT | 跳转到上一个tab | ;t | :terminal | 打开新终端,在终端中使用CTRL-W使用vim窗口控制 | CTRL {h或j或k或l} | CTRL-W {h/j/k/l} | 在多个窗口跳转 | | CTRL-W {H/J/K/L} | 将当前窗口移动到某一方向 | | CTRL-W o | 仅保留当前窗口,关闭其他所有窗口 | | CTRL-W = | 将所有窗口的高度宽度设置为与当前窗口一样 | | CTRL-W [n]+或- | 增加或减少[n]单位的当前窗口高度 | | CTRL-W _ | 将当前窗口的高度设置为尽可能最高 | | CTRL-W [n]<或> | 增加或减少[n]单位的当前窗口宽度 | | CTRL-W \| | 将当前窗口的宽度设置为尽可能最宽