使用ipad进行远程开发的时候只能使用vim,我主要使用neovim加插件的方式方便开发,不过neovim也是vim,下面很多快捷键两者是通用的
neovim安装和基本使用
在debian家族的linux下,neovim的安装可以直接使用apt包管理工具安装,但一般源里只有较低版本,要使用neovim最新版本需要使用neovim官方源
1 | sudo add-apt-repository ppa:neovim-ppa/stable |
经过验证,该方法在ubuntu18.04里面只能下载到0.6的neovim,想要最新版neovim可以选择github下载二进制文件或者自己编译。具体的教程github的wiki上写的较为详细:https://github.com/neovim/neovim
使用
目前体验下来,neovim和vim基本一致,差别主要在于插件。vim的教程可以大概看一下man手册,vim在操作时主要分为以下四种模式:
模式 | 简介 |
---|---|
正常模式(nomal) | 打开文件时的默认模式,任何模式下按esc 进入,按键不能输入,主要映射为一些功能,比如hjkl为移动等 |
命令模式(command) | 在正常模式下,输入冒号: 或/ 进入,进入后可以使用w 写入q 退出等操作 |
插入模式(insert) | 在正常模式下,输入i 进入,在插入模式下,可以编辑文本 |
可视模式(visual) | 在正常模式下,输入v 进入,进入后hjkl可以选中多行,主要用于多行操作 |
下面,对不同模式的快捷键操作做详细介绍
正常模式
- 移动光标:
功能 | 按键 |
---|---|
移动单行/列,左/下/上/右 | h/j/k/l(或者方向键) |
移动到下/上一个单词的末尾/开头 | e/b |
跳到下/上一个单词开头/结尾 | w/ge |
向上移动半页(up) | ctrl+u |
向下移动半页(down) | ctrl+d |
移动到行首 | 0或者home |
跳转到第一个非空字符 | ^ |
移动到行尾 | $或者end |
移动到开头 | gg |
移动到末尾 | G |
移动到某一行 | n+gg,比如跳到第6行,6gg |
移动到下次光标 | ctrl+i |
移动到上次光标 | ctrl+o |
跳到下/上一个字符处(forward) | f/F |
跳到下/上一个字符前(to) | t/T |
重复上次字符操作(查找之类的) | ; |
反向查找上次的查找命令 | , |
- 删除:
功能 | 按键 |
---|---|
删除光标后/前的一个字符 | x/X |
剪切光标所在行 | dd |
复制:yy,复制一行
粘贴:p/P,在光标后/前粘贴
撤回:u
其他技巧:
- 数字加上述命令可以多次执行。如5j,向下5行,3x,删除3个。
搜索:输入后按回车进入普通模式,再通过n/N可以向下/上跳转匹配对象
功能 | 按键 |
---|---|
搜索 | / |
向上搜索 | ? |
搜索当前光标所在单词 | * |
向上搜索当前光标所在单词 | # |
在该模式下按ctrl+v
可以进入多行编辑模式,选择要编辑的多行,按大写的I
编辑,编辑完后esc退出即可插入到每一行。同时在该模式下,可以使用>、<
来实现多行tab的功能。
命令模式
命令行模式除了输入下述命令外,还可以输入所安装插件支持的命令。
- 文件保存和退出
- 退出:q
- 保存:w
- 保存并退出:wq
- 显示行号:
set nu
开启,set nonu
关闭 - 替换:
:n1,n2/word1/word2/g
:将n1到n2行之间的word1替换为word2,不加g则只替换每行的第一个word1,加g则搜到的word1全部替换为word2:1,$s/word1/word2/g
:将文章中的word1替换为word2,不加g则只替换每行的第一个word1
- 其他
- 强制执行命令:加上
!
- 强制执行命令:加上
多文件操作
- 在当前打开文件的基础上再打开一个文件:
e xxx
- 查看当前打开的文件:
ls
- 切换到上一个:
bp
- 切换到下一个:
bn
- 切换到某一个:
bx
(x为数字)
分屏操作
- 水平分割:
sp
(后面可以跟文件) - 垂直分割:
vsplit
- 切换窗口:
ctrl+w+h/j/k/l
- 依次切换:
ctrl+ww
插入模式
插入模式根据需求,可以用不同种方式进入
进入方式 | 效果 |
---|---|
i | 在光标所在字符前开始输入文字并进入插入模式 |
I | 在行首开始输入文字并进入插入模式。此行首指第一个非空白字符处。 |
a | 在光标所在字符后开始输入文字并进入插入模式 |
A | 在行尾开始输入文字并进入插入模式 |
o | 在光标所在行的下面单独开一新行,来输入文字并进入插入模式 |
O | 在光标所在行的上面单独开一新行来输入文字并进入插入模式 |
s | 删除光标所在的字符并进入插入模式 |
S | 删除光标所在行并进入插入模式 |
可视模式
正常模式下v进入字符文本,V进入行文本,进入后可以选中文本,选中后常用的快捷键如下
功能 | 快捷键 |
---|---|
删除 | d |
复制 | y |
粘贴 | p |
替换 | r |
大小写转换 | gu转换为小写,gU转换为大写,g~大小写互换 |
常用快捷键基本就是以上这些,当然快捷键还可以自己设置,结合neovim安装的插件可以让开发效率更快。
基本配置
neovim配置可以通过lua文件配置,默认使用的配置文件地址为${HOME}/.config/nvim/init.lua
,常用的配置如下
1 | vim.o.number = true |
当然,打开nvim后再命令模式也可以修改上述配置(vim可以,nvim有待验证),比如我常修改tabsize
:
set ts=4
neovim插件安装
neovim可以使用lua文件来进行插件的配置,插件一般在github上可以搜索到。neovim可以使用packer插件来进行插件的管理(一个管理插件的插件>_>)
neovim常用的插件可以在rockerBOO/awesome-neovim: Collections of awesome neovim plugins. (github.com)网站中查找
安装packer
packer插件的github官网为:
安装时跟着官网的教程走即可
其他常用插件推荐
- 主题:tokyonight
- 代码提示:nvim-lspconfig
- 侧边栏:nvim-tree.lua
- 打开的文件栏:telescope
- 文件搜索:telescope
这里就不介绍具体的安装方式什么的了,后面我会将我的配置放在github上。
安装好插件后,插件的使用一般参考官方的文档即可。也是比较麻烦,这里我记录下我常用的插件的几个快捷键。
goto-preview
使用该
删除插件
- 注释插件安装处的lua配置
use-end
块 PackerClean
删除
neovim快捷键设置
设置快捷键使用的命令较长vim.api.nvim_set_keymap
,这里可以使用local
命令重命名一下,下面直接给出快捷键设置的示例:
1 | local map = vim.api.nvim_set_keymap |
其中,opt为选项,我也不知道啥意思。
参考文档
(14条消息) Vim的4种模式_还能坚持的博客-CSDN博客_vim模式