Vim入门

为什么学习Vim

  • Vim熟练后效率超高
  • 服务器上编辑配置文件、写代码必备Vim(当然也可以Vscode远程登录到服务器)
  • Vim优点
    • 简洁
    • 扩展性强
  • Vim缺点
  • Vim哲学:一切操作都可以使用键盘完成
  • 更加推荐使用Spacevim,在vim和neovim的基础上整合了很多好用的插件,而且快捷键提示也非常人性化,非常容易上手

Neovim

  • 安装Neovim:sudo apt-get install neovim
  • TODO: Neovim和Vim的区别和联系

Vim的工作模式

  • Vim不同工作模式之间的切换形成状态机。
  • 最常用的是普通模式。

普通模式

用来浏览文件、复制粘贴、删除。最常用的一种模式。

  • 光标移动
    上下左右箭头
    hjkl(分别代表上下左右)
    4h表示向上移动4行
    w(word)跳到下一个单词的开头
    b(begining)跳到单词开头
    gg跳到文档首行,对应Home键
    G跳到文档末尾
    Ctrl+D(Page Down)下一页
    Ctrl+U(Page Up)上一页
    f(find)+字母:移动到字母的位置,但是好像只能作用于一行
    $移动到行尾
    ^移动到行首(但是用起来好难用,因为需要使用Shift键)
  • 复制粘贴
    y:复制,y后面可以跟很多命令
    yy:复制当前行
    yaw(yank拉 all word):复制整个单词
    y4j:复制包括当前行在内向下的4行
    p(paste):粘贴
  • 删除:d(delete)
    dd:删除当前行
    dj:删除当前行和下一行
    d8j:删除当前行和下8行
  • 撤销:u(undo)
  • 重做:Ctrl+r(redo)

输入模式

  • 普通模式下输入i(input)进入输入模式
  • 按esc键进入普通模式
  • c是进入输入模式的一种方式
  • i(input):当前光标前一个字母开始输入
  • a(append):……下一个字母……
  • I(大写i):当前行开始……
  • A:当前行末尾……
  • c4j:删除当前行和以下4行并进入输入模式
  • caw(change all word):删除当前word并进入输入模式
  • cc:删除当前行并进入输入模式
  • o:插入一行,向下移动光标,并进入输入模式
  • O:插入一行,将当前行下移一行,并进入输入模式

命令模式

  • 输入一些指令,如qwq!等,完成保存、退出等操作
  • 普通模式下输入:进入命令模式
  • 常用命令:q(quit)、w(write)

可视模式

  • 该模式用来选择一些内容,然后按y复制、d删除、c删除并进入输入模式
  • 普通模式下按v进入可视模式
  • 显然,可视模式极大的增强了普通模式的功能,因为普通模式下只能选择特定的word、line

Vim命令

img

img

Vim基础配置 & 修改键位 & 插件

  • Vim配置文件:*.vimrc*

  • Neovim配置文件:自行创建,如下

    1
    2
    mkdir ~/.config/nvim
    nvim ~/.config/nvim/init.vim

修改常见键位

为什么要修改键位:EscCtrl键位置不合理

  • <Esc>imap jk <Esc>:imap即insert map
  • <space>nmap <space> ::nmap即normal map,把改为:

插件

  • 插件市场:VimAwesome

  • The NERD Tree插件为例,安装方式建议使用VimPlug

    • 安装Vimplug(NeoVim)

    • 修改配置文件,如下(右图)

      image-20231007010307361

    • 按照VimAwesome中的提示进行安装,Done

      image-20231007010412080

    • 使用插件

      命令模式下直接tab键,选择第一个:

      image-20231007010535620

      最后左侧出现目录:

      image-20231007010614355

    • NERD Tree使用

      o打开/关闭目录,打开文件(关闭文件还是使用:q

    • 快捷键设置

      :NERDTreeToggle命令用来关闭文件浏览器,那么肯定是使用快捷键更方便

      map <silent> <C-e> :NERDTreeToggle<CR>:把NERDTree绑定在快捷键Ctrl-e上面

    • image-20231007011110510

  • 参考的插件配置

    https://github.com/MarsWang42/My-Vim-Conf

参考

最强Vim新手指南,手把手教你打造只属于自己的代码编辑器!

史上最全Vim快捷键键位图(入门到进阶)

The Ends


Vim入门
http://franktjp.com/2023/10/06/Vim入门/
作者
Franktjp
发布于
2023年10月6日
许可协议