日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

vim光速开发,你值得拥有

發布時間:2024/3/13 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vim光速开发,你值得拥有 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 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
或者在命令行使用:
tabn、tabp

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 <SPACE> <Nop> 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 <C-n> <Plug>NextWholeOccurrence xmap <C-n> <Plug>NextWholeOccurrence nmap <C-x> <Plug>SkipOccurrence xmap <C-x> <Plug>SkipOccurrence nmap <C-p> <Plug>RemoveOccurrence xmap <C-p> <Plug>RemoveOccurrence nmap <S-C-n> <Plug>AllWholeOccurrences xmap <S-C-n> <Plug>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 <esc> " nerdtre map <leader>e :action SelectInProjectView<CR> nnoremap <leader>d :NERDTreeFocus<CR>""" Idea specific settings ------------------ set ideajoin set idearefactormode=keep" clear the highlighted search result nnoremap <Leader>sc :nohlsearch<CR>" easymotion map <leader>f <Plug>(easymotion-s)" Window operationnnoremap <leader>ww <C-W>w nnoremap <leader>wd <C-W>c nnoremap <leader>wj <C-W>j nnoremap <leader>wk <C-W>k nnoremap <leader>wh <C-W>h nnoremap <leader>wl <C-W>l nnoremap <leader>ws <C-W>s nnoremap <leader>w- <C-W>s noremap <leader>wv <C-W>v nnoremap <leader>w\| <C-W>v" copy and paste noremap <Leader>y "*y noremap <Leader>p "*p noremap <Leader>P "0p vnoremap Y "+y" Tab operation nnoremap tn gt nnoremap tp gT" Insert mode shortcut inoremap <C-h> <Left> inoremap <C-j> <Down> inoremap <C-k> <Up> inoremap <C-l> <Right> inoremap <C-a> <Home> inoremap <C-e> <End> inoremap <C-d> <Delete>" Quit normal mode nnoremap <Space>q :action CloseProject<CR> nnoremap <Space>Q :qa!<CR>" edit vimrc nnoremap <leader>ve :e ~/.ideavimrc<CR> nnoremap <leader>vw :w!<CR> nnoremap <leader>vs :source ~/.ideavimrc<CR>" intellij built in key mapnnoremap <leader>a :action GotoAction<CR> nnoremap <leader>b :action Bookmarks<CR> nnoremap <leader>c :action GotoClass<CR> "nnoremap <leader>e :action SearchEverywhere<CR> "nnoremap <leader>f :action FindInPath<CR> nnoremap <leader>gc :action Git.CompareWithBranch<CR> nnoremap <leader>ga :action Annotate<CR> nnoremap <leader>gh :action Vcs.ShowTabbedFileHistory<CR> nnoremap <leader>nj :action NewClass<CR> nnoremap <leader>nt :action Kotlin.NewFile<CR> nnoremap <leader>r :action RecentFiles<CR>" build and compile code nnoremap <leader>mr :action Maven.Reimport<CR>"toggle something "toggle track vim action Id nnoremap ta :action VimFindActionIdAction<CR>" run and debug nnoremap ,d :action Debug<CR> nnoremap ,r :action Run<CR> nnoremap ,c :action CompileDirty<CR> nnoremap ,b :action ToggleLineBreakpoint<CR> nnoremap ,v :action ViewBreakpoints<CR> nnoremap ,s :action Stop<CR> " navigation nnoremap gs :action GotoSuperMethod<CR> nnoremap gb :action JumpToLastChange<CR> nnoremap gi :action GotoImplementation<CR> nnoremap gd :action GotoDeclaration<CR> nnoremap gf :action FileStructurePopup<CR>" code actions nnoremap U :action FindUsages<CR> nnoremap R :action RenameElement<CR> nnoremap == :action ReformatCode<CR> vnoremap = :action ReformatCode<CR> nnoremap -- :action OptimizeImports<CR> nnoremap cc :action CommentByLineComment<CR> vnoremap cc :action CommentByLineComment<CR>

接下來我們稍微解釋一下這個配置文件;

這里配置的是搜索的一些內容,例如什么高亮搜索,模糊搜索,忽略大小寫搜索等,我們可以來試一下:

我們搜索leader默認是忽略大小寫的,但是我們如果使用的是駝峰那就可以嚴格匹配:



然后進行了插件的配置:

這個easy是讓我們快速抵達想要到的地方,例如我們現在想快速到達下圖位置:

兩個空格+ f + 相關字符 然后按照提示選擇即可

surround插件的作用就是讓你快速在某一部分的周圍做出操作,這里不做出具體介紹,可以自行在網上查看教程。

接下來是一些基礎按鍵的映射;

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


這里配置的是取消高亮 空格+sc 也就是searchclear


然后是一些窗口操作;

這里是復制粘貼到剪切板的操作


切換導航欄的操作

總結

以上是生活随笔為你收集整理的vim光速开发,你值得拥有的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。