vim光速开发,你值得拥有
创始人
2024-05-09 11:56:47
0

文章目录

  • vim设计哲学
  • vim的模式
  • 什么是可视模式
  • 光标移动
  • 动作(motion)
  • 操作符(operator)
  • 操作符(operator)+动作(motion)实际使用
  • 大小写转换
  • easymotion
  • vim-surround
  • TIPS
  • ideavim的使用

vim设计哲学

在这里插入图片描述
vim被称为编辑器之神。它的成名就是因为文本操作非常的高效。

vim通过划分不同的模式,使按键在不同的模式下有不同的作用。这样的好处就是可以使用更少的键完成同样的操作。

操作符就是说告诉vim我们要干什么,而动作就是告诉vim怎么干。

在这两个因素的作用下就使我们的开发变得非常高效!

vim的模式

vim有如下四种模式:
在这里插入图片描述

这几种模式之间可以相互转换,例如在普通模式和插入模式之间有如下几种转换的方法
在这里插入图片描述

o代表的是open a new line
i代表的是insert
a代表的是append

在这里插入图片描述

注意这里的jj和CapsLock需要在配置文件中进行映射,否则不一定会生效
在这里插入图片描述

在普通模式和可视模式之间进行转化的途径如下:
在这里插入图片描述
在这里插入图片描述

普通模式和命令模式的转换途径如下:
在这里插入图片描述

什么是可视模式

这里我们多提一句什么是可视模式:

在 Vim 中,可视模式用于选择文本,这与在 GUI 文本编辑器中通过鼠标单击并拖动以选择文本操作来选择文本的 Vim 等效。

Vim 中的可视模式允许您选择文本,但可视模式的不同子集将很有用,具体取决于您要如何选择文本。

Vim 中有 3 个可视模式子集:

  • Visual [Character] 模式:用于选择单个字符
  • 视觉线模式:用于一次选择整条线
  • 可视块模式:用于选择块状矩形形状的文本

如果要切换到可视模式,则需要先进入普通模式:

  • 视觉模式:(v小写’v’)
  • 视觉线模式:(V大写“V”)
  • 视觉块模式:Ctrl + v

当你切换到可视模式时,Vim 会给你一些细节,它将显示您处于哪种模式以及您选择的文本数量。

进入可视模式后,选择从光标点开始,您可以使用导航键 h/j/k/l 移动它,w/e/b 键跳过单词。

当您对选择感到满意时,您可以执行删除、拉取和替换等操作。

光标移动

以字母为单位

在普通模式下光标向上下左右移动的按键如下:
在这里插入图片描述

这个不用记,自己多用几遍就熟了

以单词为单位

在这里插入图片描述

这里我们一般b、e用的多:

  • b代表begin
  • e代表end

行首、行尾的跳跃

在这里插入图片描述

字符间的跳跃
在这里插入图片描述
;,我们可以简单地理解为前一个、后一个

动作(motion)

首先我们来区分一下i(insert)和a(around)的区别,我们可以通过如下几个例子来理解:
在这里插入图片描述

然后我们来看一下一些基本的动作(motion):
在这里插入图片描述

操作符(operator)

操作符就是告诉vim我们要干什么,这里我们说说最常用的几个操作符;
在这里插入图片描述

操作符(operator)+动作(motion)实际使用

下面我们举几个例子:

在这里插入图片描述
如果我们要修改HelloWorld,我们可以使用:c iw

在这里插入图片描述

如果我们要修改泛型,可以使用c iw 或者 c i<
如果我们要删除泛型,可以使用d i<,d iw或者d a<

在这里插入图片描述
如果我们要删除返回值,可以使用d i{或者d iB

B是bracket的缩写

在这里插入图片描述
删除两行,使用2dd

在这里插入图片描述

  • 删除到s:d fs
  • 修改到s:c fs
  • 复制到s:y fs

在这里插入图片描述
也就是操作符配合我们的^$使用

如果要删除、修改、复制整个文件,就是操作符配合e使用:

  • d ie
  • c ie
  • y ie

如果要对html中的标签进行操作,我们可以动作t,例如现在我们想删除并编辑div内的所有内容:
在这里插入图片描述
我们可以把光标移到div中,然后按c it即可

在这里插入图片描述
我们将当前单词进行选中然后复制:v iw y

大小写转换

相关操作如下图:
在这里插入图片描述

easymotion

在这里插入图片描述
leader在这里我们设定为空格space键

vim-surround

在这里插入图片描述

TIPS

测试环境:vscode

在这里插入图片描述
我们要查看当前函数的定义:g d(go to definition)
调回来使用:ctrl -

在这里插入图片描述
有些方法上鼠标悬浮会有注释,如果你想看的话可以使用:g h

跳转标签页:
往前跳:g T
往后跳:g t

往后跳四个:4 g t

跳转到左边的项目栏:
command 1

如果是分页的跳转则使用:
command 2
或者在命令行使用:
tabntabp

ideavim的使用

ideavim是一个基于IntelliJ平台的vim插件

我们第一次使用的时候除了安装ideavim插件之外,可以把easymotion这个插件也下载了。

然后我们点击右下角的那个绿色的V字,再点击open打开我们的ideavimrc配置文件。

一开始打开是空的,我们可以自己进行配置,也可以使用如下的配置文件;

"==========================================
" Author:  hank.zhao
" Version: 0.1
" Email: hxzhenu@gmai.com
" Desc: my ideavim config file
"==========================================
" set leader key
nnoremap  
let mapleader = " "" search
set hlsearch
set incsearch
set smartcase
set ignorecase
set showmode
set de=on
set scrolloff=5" plugins
set ideamarks
set easymotion
set surround
set argtextobj
set multiple-cursors
" Remap multiple-cursors shortcuts for Mac
nmap  NextWholeOccurrence
xmap  NextWholeOccurrence
nmap  SkipOccurrence
xmap  SkipOccurrence
nmap  RemoveOccurrence
xmap  RemoveOccurrence
nmap  AllWholeOccurrences
xmap  AllWholeOccurrencesset exchange
set highlightedyank
set textobj-entire
set keep-english-in-normal-and-restore-in-insert
set NERDTree
set ReplaceWithRegister
" basic key mapping
nnoremap L $
vnoremap H ^
nnoremap H ^
vnoremap L $
nnoremap ; :
nnoremap ` ,inoremap jk 
" nerdtre
map e :action SelectInProjectView
nnoremap d :NERDTreeFocus""" Idea specific settings ------------------
set ideajoin
set idearefactormode=keep" clear the highlighted search result
nnoremap sc :nohlsearch" easymotion
map f (easymotion-s)" Window operationnnoremap ww w
nnoremap wd c
nnoremap wj j
nnoremap wk k
nnoremap wh h
nnoremap wl l
nnoremap ws s
nnoremap w- s
noremap wv v
nnoremap w\| v" copy and paste
noremap y "*y
noremap p "*p
noremap P "0p
vnoremap Y "+y" Tab operation
nnoremap tn gt
nnoremap tp gT" Insert mode shortcut
inoremap  
inoremap  
inoremap  
inoremap  
inoremap  
inoremap  
inoremap  " Quit normal mode
nnoremap q  :action CloseProject
nnoremap Q  :qa!" edit vimrc
nnoremap ve :e ~/.ideavimrc
nnoremap vw :w!
nnoremap vs :source ~/.ideavimrc" intellij built in key mapnnoremap a :action GotoAction
nnoremap b :action Bookmarks
nnoremap c :action GotoClass
"nnoremap e :action SearchEverywhere
"nnoremap f :action FindInPath
nnoremap gc :action Git.CompareWithBranch
nnoremap ga :action Annotate
nnoremap gh :action Vcs.ShowTabbedFileHistory
nnoremap nj :action NewClass
nnoremap nt :action Kotlin.NewFile
nnoremap r :action RecentFiles" build and compile code
nnoremap mr :action Maven.Reimport"toggle something
"toggle track vim action Id
nnoremap ta :action VimFindActionIdAction" run and debug
nnoremap ,d :action Debug
nnoremap ,r :action Run
nnoremap ,c :action CompileDirty
nnoremap ,b :action ToggleLineBreakpoint
nnoremap ,v :action ViewBreakpoints
nnoremap ,s :action Stop
" navigation
nnoremap gs :action GotoSuperMethod
nnoremap gb :action JumpToLastChange
nnoremap gi :action GotoImplementation
nnoremap gd :action GotoDeclaration
nnoremap gf :action FileStructurePopup" code actions
nnoremap U :action FindUsages
nnoremap R :action RenameElement
nnoremap == :action ReformatCode
vnoremap = :action ReformatCode
nnoremap -- :action OptimizeImports
nnoremap cc :action CommentByLineComment
vnoremap cc :action CommentByLineComment

接下来我们稍微解释一下这个配置文件;
在这里插入图片描述
这里配置的是搜索的一些内容,例如什么高亮搜索,模糊搜索,忽略大小写搜索等,我们可以来试一下:

我们搜索leader默认是忽略大小写的,但是我们如果使用的是驼峰那就可以严格匹配:

在这里插入图片描述
在这里插入图片描述
然后进行了插件的配置:
在这里插入图片描述
这个easy是让我们快速抵达想要到的地方,例如我们现在想快速到达下图位置:
在这里插入图片描述

两个空格+ f + 相关字符 然后按照提示选择即可

surround插件的作用就是让你快速在某一部分的周围做出操作,这里不做出具体介绍,可以自行在网上查看教程。

接下来是一些基础按键的映射;
在这里插入图片描述

  • nnoremap代表normal模式
  • vnoremap代表visual模式

在这里插入图片描述
这里配置的是取消高亮 空格+sc 也就是searchclear

在这里插入图片描述
然后是一些窗口操作;
在这里插入图片描述
这里是复制粘贴到剪切板的操作

在这里插入图片描述
切换导航栏的操作

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...