首页 > 其他分享 >vim入门实战

vim入门实战

时间:2023-03-05 16:34:10浏览次数:51  
标签:实战 插件 入门 ctrl Windows vim 使用 help

目录

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

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

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

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

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

pp9CGA1.png

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

pp9CKcF.png

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

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

pp9kna9.png

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上克隆,比较方便。

pp9CacD.png

唯有多练才能熟练,善用自带帮助文档,如下列举最基本帮助文档以及分屏操作获取方式。
注意:使用格式为英文输入法下的冒号加上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

  • h:左移
  • j:下移
  • k:上移
  • l:右移

单词切换

  • w\W
  • b\B
  • e

搜索移动(行间)

  • 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多屏操作

pp9CDHA.png

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
  • :ls
  • :bprevious

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

pp9CJtx.png

多屏操作

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

水平分割效果展示

pp9C0nH.jpg

垂直分割效果展示

pp9CN9K.jpg

更多用法,参考帮助文档

:help vs
:help sp

多个标签页

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

更多用法,参考帮助文档

:help tabnew
:help tabnext

复制粘贴

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

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

打开了多个分屏或者标签页,如何一次性关闭?使用 :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

pp9ktVH.png

修改配色方案永久生效,设置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效果。
pp9CYh6.jpg

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。

pp9C1B9.png

IDE与vim

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

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

01、STS4启动界面

pp9ClnJ.png

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

pp9Cu1U.png

03、搜索vim并安装

pp9CMX4.png

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

pp9C37R.png

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

标签:实战,插件,入门,ctrl,Windows,vim,使用,help
From: https://www.cnblogs.com/cnwangk/p/17180870.html

相关文章

  • IT0009.Vue.js核心技术解析与uni-app跨平台实战开发
    IT0009.Vue.js核心技术解析与uni-app跨平台实战开发  自己一面看一面跟着打的代码,蛮大,其实很多都是npm的modules链接:https://caiyun.139.com/m/i?0V5Cg5LbWDJWD ......
  • 软件测试|一文带你入门Python图片处理神器Pillow
    前言情人节刚过,我还是单身,我想了一下原因,是我的拍照技能不行,也有我对女神表白的套路太过老的原因,我没有体现出身为程序猿的优势,虽然我们拍照不行,但是我们身为程序猿,可以改......
  • Raspberry Pi GPIO入门指南
    如果您想使用RaspberryPi进行数字输入/输出操作,那么您需要使用GPIO(通用输入/输出)引脚。在这篇文章中,我们将为您提供RaspberryPiGPIO的基础知识,包括如何访问和操作......
  • Java实战(第二版)读后总结与感想
    1. 基本信息Java实战(第二版)ModernJavainAction,2ndEdition[英]拉乌尔–加布里埃尔·乌尔玛(Raoul-GabrielUrma),[意]马里奥·富斯科(MarioFusco),[英]艾伦·米克......
  • WPF 界面布局、常用控件入门教程实例 WPF入门学习控件快速教程例子 WPF上位机、工控串
    WPF(WindowsPresentationFoundation)是一种用于创建Windows桌面应用程序的框架,它提供了丰富的控件库和灵活的界面布局,可以创建现代化的用户界面。下面是WPF入门学......
  • 渗透实战——信息收集、漏洞发现、漏洞利用
    信息收集0x01WEB信息收集网站前端源码脚本通过伪静态多提交地址访问抓包分析获得网站服务器等信息Web指纹识别在线指纹识别,在线cms识别小插件--在线工具(b......
  • Vue快速入门01
    Vue快速入门01一、安装Vue工具(Vuecli)Vuecli基于Vue.js进行快速开发的完整系统。人话:脚手架,顾名思义就是搭建工程的一个工具,脚手架有很多,vue-cli是其中一种。用来帮......
  • vim应用技巧
    1.在用vim打开文档之前可以用vim+数字文档来定位到具体的行。例如我们要打开、/etc/passwd的第10行就可以用vim+10/etc/passwd2.在命令行模式下按Ctrl+v然后再按向下......
  • vim 一些技巧备忘
    :3,5t.#把第3行到第5行的内容复制到当前行下方:t5#把当前行复制到第5行下方:t.#复制当前行到当前行下方(等价......
  • Transformer 模型:入门详解(1)
    动动发财的小手,点个赞吧!简介众所周知,transformer架构是自然语言处理(NLP)领域的一项突破。它克服了seq-to-seq模型(如RNN等)无法捕获文本中的长期依赖性的局限性。......