7

vim入门实战 - 文正耕耘

 1 year ago
source link: https://www.cnblogs.com/cnwangk/p/17180870.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

vim入门实战

一入编程深似海,从此节操是路人。

前段时间由于业务场景需求,不得不近一步学习 vim 使用方法,提高工作效率,就总结了一些常用快捷键使用方法。满足一般需求,掌握基本增、删、改、查就可以了,近一步学习可以了解多屏操作和宏的使用以及自定义插件功能。

Linux发行版服务器基本上是已经配置好 vi 或者 vim,可以使用进行练习,也可以下载vim客户端(支持多个平台:Linux、macOS、Windows)软件进行练习,当然还使用git bash一样可以进行练习。目前主流IDE工具,基本上是支持安装vim插件,开启插件支持vim相关功能。例如:VSCode、IntelliJ IDEA(社区版与旗舰版均支持)。

展示一下Windows平台下的vim以及gvim:

vim:在字符界面进行使用,可以看到初次进入会显示版本信息、维护人以及一些帮助命令。

GVIM:其实是GUI VIM,带有图形操作界面,便于桌面客户端使用。

VSCode使用vim插件,简单介绍一下

ctrl + shift + p:快速掉出命令行工具,键入vim找到Toggle Vim Mode

shell或者其它terminal快速纠错

掌握常用快捷键提高日常工作效率,某些快捷键并不适用Windows terminal。

  • ctrl + h :删除上一个字符,ctrl + w:删除上一个单词,ctrl + u: 删除一整行;
  • ctrl + a:跳到行首,在Windows terminal是全选;ctrl + e:跳到行末,不适用Windows terminal;
  • ctrl + b:前移,不适用Windows terminal;ctrl + f:后移,不适用Windows terminal。

tips:Windows terminal快速跳转,使用ctrl + 左右方向键进行跳转。

vim入门实战

vim官网:https://www.vim.org/

开源仓库:https://github.com/vim/vim

插件查找:https://vimawesome.com/

使用VimAwesome检索自己需要的插件,基本上每个插件列出了源地址。通常个人习惯从github上克隆,比较方便。

唯有多练才能熟练,善用自带帮助文档,如下列举最基本帮助文档以及分屏操作获取方式。
注意:使用格式为英文输入法下的冒号加上help,使用命令亦是如此。

:help
:help vs
:help sp

插入(编辑)模式:a i o。插入模式姿势也很多啊,标准姿势 i ,高难度姿势 a、o。

  • a:节奏插,在当前字符光标前一个字符插入

  • i:慢插,当前光标位置插入。

  • o:快插,快速在前一行下方插入一行空白行

快速终止(进入插入模式),等价于ESC退出编辑模式进入normal模式

  • ctrl + [

  • ctrl + c

养成使用 hjkl 按键替代方向键进行上下左右移动,提高操作效率。

vim快速移动

normal模式

快速移动:按住快捷键 h j k l

单词切换

搜索移动(行间)

  • f\F:按住f输入单词,使用逗号(,),分号(;)切换单词。
  • t:转到输入字符前一个字符上。

水平移动

  • 0:移动到行首第一个字符
  • ^:移动到第一个非空白字符
  • $:移动到行尾,g_ 移动到非空白行尾

页面快速移动

  • ctrl + u: 上翻页,等同于shift + 方向键上键
  • ctrl + f: 下翻页,等同于shift + 方向键下键
  • gg :快速回到页面顶部。
  • G & shift +g:移动到页面末尾

更多用法,可以参考

:help g

vim增删改查

vi:选择多个字符,等同于shift + v:选择当前行,使用G选择余下行。

normal模式下使用

  • x:快速删除一个字符
  • d(delete):配合文本对象快速删除一个单词:dw;快速删除一行:dd
  • d和x:配合数字执行多次
  • 插入数据(a i o)
  • r\R(replace):以...替代,替代当前字符,R:替代后续字符
  • c(change):改变,cc:删除当前行,cw(ciw、caw):删除当前单词并修改
  • s\S(substitute):替代,删除当前字符并进行插入,可以在normal模式替代插入模式;S:删除整行
  • u:恢复到之前的状态,删掉插入内容。

搜索替换

  • s\S(substitute),可以配合正则表达式替换
  • 替换位标志:g(global),c(confirm),n(number)
  • :% s/word/w/g:全局替换
  • :% s/\<word\>/w/g:精确匹配单词后替换

vim多屏操作

normal模式

多文件操作,准备多个文件用于测试

预先准备多个测试文件,使用vim或者touch命令都行

vim test_a.txt

this is test_a file
# test a

复制多个文件用于测试:

cp test_a.txt test_b.txt;cp test_a.txt test_c.txt

开始测试,依次输入如下命令:

  • :e test_a.txt,:e test_b.txt,:e test_c.txt
  • :bprevious

使用 :e 进入编辑模式,不退出当前会话同时编辑多个文件,:ls 查看当前会话缓存文件,:bprevious 查看之前编辑过的文件。

多屏操作

  • :vs:水平分割
  • :sp:垂直分割
  • ctrl + w :移动窗口,配合大写L和hjkl操作

水平分割效果展示

垂直分割效果展示

更多用法,参考帮助文档

:help vs
:help sp

多个标签页

  • :tabnew :打开新的标签页
  • :tabnext:切换标签页
    还可以使用快捷键 gt 快速切换标签页,同样可以使用简化写法 :tabn 切换标签页。

更多用法,参考帮助文档

:help tabnew
:help tabnext

复制粘贴

  • normal下使用y(yank)复制,p(put)粘贴
  • yy:复制一行
  • yiw:复制一个单词
  • x删除,p粘贴。

示例:如果复制一大段内容,可以结合快捷键shift + v 配合 y复制,使用 p 粘贴内容。

打开了多个分屏或者标签页,如何一次性关闭?使用 :qa 命令关闭全部,返回当前终端。

vim进阶

normal模式

vim宏

  • 按住 q 键录制类容,配合使用命令qa
  • 快速选择余下所有行:shift + v G
  • 进入普通模式输入::normal @a

常用补全

  • ctrl + n 和 ctrl + p 补全单词
  • ctrl + x 和 ctrl + f 补全文件名
  • ctrl + x 和 ctrl + o 补全代码

补全如果没生效,需要配置相应的插件。

使用vim相关插件,修改配色方案

以Java类为示例进行说明,编辑Java代码Hello world

vim Hello.java

class Hello{
        public static void main(String args[]){
                System.out.println("Hello cangls");
        }
}

克隆hybrid配色方案

git clone https://github.com/w0ng/vim-hybrid.git

创建文键目录

mkdir -p .vim/colors

复制hybrid.vim到.vim/colors目录中

cp vim-hybrid/colors/hybrid.vim  .vim/colors

编辑配色方案

vim Hello.java
:colorscheme hybrid

修改配色方案永久生效,设置background=dark为暗色系,默认为light浅色系,默认设置显示行号set number

vim .vimrc

set background=dark
colorscheme hybrid
set number

恢复默认配色

:colorscheme default

vim插件

初次使用,插件不在多,在于对你的操作有所提升。可以一步步尝试安装插件,对比哪些对你的日常工作有帮助。

  • vim-plug:用于管理插件。
  • NERDTree:用于增强目录树插件。
  • TarBag:用于显示标签插件(需要ctags支撑,Windows平台将ctags.exe文件置于vim根目录同级即可使用)
    例如:个人解压后vim路径:D:\gvim_9.0.1075_x64\vim90\,将ctags.exe放入vim90目录即可。

如果当前用户根目录没有.vimrc 文件,则新增。

Windows平台需要在当前用户新增 .vimrc 文件。

vim ~\.vimrc

Linux平台一样需要新增 .vimrc

vim ~/.vimrc

加入如下内容即可安装插件:

set number
call plug#begin()
  Plug 'preservim/nerdtree'
  Plug 'preservim/tagbar'
call plug#end()

插件安装命令:

:PlugInstall

插件安装后,重启vim即可生效。

安装插件效果展示,最左侧是nerdtree效果,最右侧是tagbar效果。

vim无处不在

vim与Tmux可以在Linux服务器上安装tmux配合vim使用,效果更加。

Linux发行版(centos9-stream)安装tmux

[root@Centos9-Stream ~]# yum list | grep tmuxtmux.x86_64                                          3.2a-4.el9                         baseos[root@Centos9-Stream ~]# yum -y install tmux[root@Centos9-Stream ~]# rpm -qa | grep tmuxtmux-3.2a-4.el9.x86_64

安装后初步使用:

[root@Centos9-Stream ~]# tmux ls0: 1 windows (created Sun Feb 26 15:42:19 2023) (attached)

默认进入tmux,使用tab键可以提示相关命令,使用exit退出tmux。

IDE与vim

  • VSCode(Visual Studio Code)
  • STS4(Spring Tool Suite4)
  • IDEA(IntelliJ IDEA)

文初演示了VSCode使用vim插件,此处展示一下STS4使用vim插件:

01、STS4启动界面

02、顶部菜单栏找到help,打开Eclipse Marketplace

03、搜索vim并安装

04、重启开发工具STS4,初始化界面效果

vim与neovim
与时俱进,竞争产出新特性。
https://github.com/neovim/neovim

站在巨人的肩膀上,打造炫酷的vim
SpaceVim:https://github.com/SpaceVim/SpaceVim

个人收藏一些vim相关插件仓库地址:https://github.com/stars/cnwangk/lists/vim

你还可以通过 vimawesome 寻找vim插件:https://vimawesome.com


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK