当前位置:首页 » 《随便一记》 » 正文

[Vim][常用操作整理]详细讲解

18 人参与  2024年11月14日 19:21  分类 : 《随便一记》  评论

点击全文阅读


请添加图片描述


目录

0.说明1.Cursor Movement2.Insert Mode3.Editing4.Marking Text (Visual Mode)5.Visual commands (In Visual mode)6.Registers7.Mark and Positions8.Macros9.Cut and paste10.Indent text11.Exiting12.Search and replace13.Diff


0.说明

为何是全英文? 本篇文章为本人的一次尝试,之所以用全英文介绍,也是为了和读者一起熟悉全英文文档 虽说是全英文的文档,但是还是很浅显易懂的 如果有读者需要一份中文版本,可以评论或者私聊,我会考虑再出一份中文版本的 内容方面: 本文整理出的操作,都是基础语法之外的一些操作及一些常用组合同时,部分操作我只给出了一个例子,其他操作是同理的,相信学过Vim基础的小伙伴是可以自己发散开的没有Vim基础的小伙伴,也不用担心,我后面会出Vim的基础教程~

1.Cursor Movement

HHome,move to top of screenMMiddle,move to middle of screenLLow,move to bottom of screen0:jump to the start of the line}:jump to next paragraph (or function/block, when editing code){:jump to previous paragraph (or function/block, when editing code)

2.Insert Mode

ea:insert (append) at the end of the wordCtrl + hdelete the character before the cursor during insert modeCtrl + wdelete the word before the cursor during insert modeCtrl + jbegin new line during insert modeCtrl + t:indent(move right) line one shiftwidth during insert modeCtrl + d:de-indent(move left) line one shiftwidth during insert modeCtrl + n:insert(auto-complete) next match before the cursor during insert modeCtrl + p:insert(auto-complete) previous match before the cursor during insert modeCtrl + rx:insert the contents of register xCtrl + ox:Temporarily enter normal mode to issue one normal-mode command x.

3.Editing

rReplace,replace a single character.RReplace Mode,replace more than one character, until ESC is pressed.JJoin,join line below to the current one with one space in between.gJ:join line below to the current one without space in between.gwip:reflow paragraph.xpTranspose,transpose two letters(delete and paste).u:undo.UUndo Line,restore (undo) last change line.

4.Marking Text (Visual Mode)

v:start visual mode, mark lines, then do a command (like y-yank)V:start linewise visual mode.o:move to other end of marked area.Ctrl + v:start visual block mode.O:move to other corner of block.aw:mark a word.ab:a block with ().aB:a block with {}.at:a block with <> tags.ib:inner block with ().iB:inner block with {}.it:inner block with <> tags.Tip:Instead of b or B one can also use ( or {, respectively.

5.Visual commands (In Visual mode)

>:shift text right<:shift text lefty:yank (copy) marked textd:delete marked text~:switch caseu:change marked text to lowercaseU:change marked text to uppercaseTip:Mark first, then operate

6.Registers

Registers are being stored in ~/.viminfo, and will be loaded again on next restart of vim.Special registers0:last yank":unnamed register, last delete or yank%: current file name#: alternate file name*:clipboard contents (X11 primary)+:clipboard contents (X11 clipboard)/:last search pattern::last command-line.:last inserted text-:last small (less than a line) delete=:expression register_:black hole register

7.Mark and Positions

:marks:list of marks ma:set current position for mark A`a:jump to position of mark Ay`a:yank text to position of mark A`0:go to the position where Vim was previously exited`":go to the position when last editing this file`.:go to the position of last editing this file ` `:go to the position before the last last jump :ju[mps]:list of jumps Ctrl + i:go to newer position in jump list Jump forward Ctrl + o:go to older position in jump list Jump backwards :changes:list of changes g:go to newer position in change listg;:go to older position in change list Ctrl + ]:jump to the tag under cursor This is a common command for viewing code definitions in Vim.When the cursor is over an identifier, such as a function name or variable name, use Ctrl + ]to jump to the definition of that identifier Tip:To jump to a mark you can either use a backtick (`) or an apostrophe ('). Using an apostrophe jumps to the beginning (first non-blank) of the line holding the mark.

8.Macros

qa:record macro aq:stop recording macro@a:run macro a@@:rerun last run macro

9.Cut and paste

p:put (paste) the clipboard after cursorP:put (paste) before cursorgp:put (paste) the clipboard after cursor and leave cursor after the new textgP:put (paste) the clipboard before cursor and leave cursor after the new textd$ or D:delete (cut) to the end of the line

10.Indent text

>>:indent (move right) line one shiftwidth<<:de-indent (move left) line one shiftwidth>%:indent a block with () or {} (cursor on brace) line one shiftwidth>ib:indent inner block with ()>at:indent a block with <> tags3==:re-indent 3 lines=%:re-indent a block with () or {} (cursor on brace)=iB:re-indent inner block with {}gg=G:re-indent entire buffer]p:paste and adjust indent to current line

11.Exiting

:wqa:write (save) and quit on all tab

12.Search and replace

@pattern:‘very magic’ pattern: non-alphanumeric characters are interpreted as special regex symbols (no escaping needed):noh[lsearch]:remove highlighting of search matches

13.Diff

za:toggle fold under the cursorzo:open fold under the cursorzc:close fold under the cursorzr:reduce (open) all folds by one levelzm:fold more (close) all folds by one levelzi:toggle folding functionality]c:jump to start of next change[c:jump to start of previous changeTip:The commands for folding (e.g. za) operate on one level. To operate on all levels, use uppercase letters (e.g. zA)

点击全文阅读


本文链接:http://zhangshiyu.com/post/186222.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1