VIM Tutor

Modal editing

  • Normal(<ESC>): for moving around a file and making edits
  • Insert(i): for inserting text
  • Replace(R): for replacing text
  • Visual: for selecting blocks of text
    1. plain(v):
    2. line(V):
    3. block(<C-v>):
  • Command-line(:): for running a command

Command-line

This mode has many functionalities, including opening, saving, and closing files, and quitting Vim.

  • :q quit(close window)
  • :w save('write')
  • :wq save and quit
  • :e {filename} open file for editing
  • :ls show open buffers
  • help {topic} open help
    1. :help :w opens help for the :w command
    2. :help w opens help for the w movement

Movement

  • Basic movement: hjkl(left, down, up, right)
  • Words: w(next word), b(beginning of word), e(end of word)
  • Lines: 0(beginning of line), ^(first non-blank character), $(end of line)
  • Screen: H(top of screen), M(middle of screen), L(bottom of screen)
  • Scroll: Ctrl-u(up), Ctrl-d(down)
  • File: gg(beginning of file), G(end of file)
  • Misc: %(corresponding item)(Type % to find a matching ),], or })
  • Find: f{character}, t{character}, F{character}, T{character}
    1. find/to forward/backward {character} on the current line
    2. ,/; for navigating matches
  • Search: /{regex}, n/Nfor navigating matches
  • Type CTRL-O to takes you back to OLDER positions
  • Type CTRL-I to takes you back to NEWER positions.
  • Type CTRL-W to jump from one window to another.

Edits

For manipulating/deleting text, want to use something more than backspace.

  • s substitute character(equal to cl)
  • ~ flips the case of a character

Modifiers

You can use modifiers to change the meaning of a noun, Some modifiers are i, which means "inner" or "inside", and a, which means "around"

  • ci( change the contents inside the current pair of parentheses
  • ci[ change the contents inside the current pair of square backets
  • da' delete a single-quoted string, including the surrounding single quotes

Multiple windows

  • :sp/:vsp to split window
  • <Ctrl-W-hjkl>: change window to left/up/down/right

Insert mode

  • Type o to open a line BELOW the cursor and start Insert mode.
  • Type O to open a line ABOVE the cursor.
  • Type i to insert text BEFORE the cursor.
  • Type a to insert text AFTER the cursor.
  • Type A to insert Text after the end of the line.
  • Type I to insert Text BELOW the start of the line.

Search

  • Typing / followed by a phrase searches FORWARD for the phrase.
  • Typing ? followed by a phrase searches BACKWARD for the phrase.
  • Type n to find the NEXT occurrence in the same direction.
  • Type N to find the BEFORE occurrence in the same direction.

Undo & Redo

  • To undo previous actions, type u
  • To undo all the changes on a line, type U
  • To undo the undo's, type CTRL-R

Substitute

  • To substitute new for the first old in a line type :s/old/new
  • To substitute new for all 'old's on a line type :s/old/new/g
  • To substitute phrases between two line #'s type :#,#s/old/new/g
  • To substitute all occurrences in the file type :%s/old/new/g
  • To ask for confirmation each time add 'c' :%s/old/new/gc

Set options

Typing ":set xxx" sets the options 'xxx'. Options are:

  • 'ic' 'ignorecase' ignore upper/lower case when searching
  • 'is' 'incsearch' show partial matches for a search parase
  • 'hls' 'hlsearch' highlight alll matching phrases
  • Prepend 'no' to seitch an option off: ":set noic"

Operate file

Common

  • <operator> [<number>] <motion>

<operator> - is what to do.

  • d - is the delete operator
  • c - is the change operator
  • y - is the yank(copy) operator

<number> - is an optional count to repeat the motion.

<motion> - moves over the test to operate on.

  • w - until the start of the next word, EXCLUDING its first character.
  • e - to the end of the current word, INCLUDING the last character.
  • $ - to the end of the line, INCLUDING the last character.

Special

  • Type dd to delete a whole line.
  • Type cc to delete the word and places you in Insert mode for the whole line.

Replace

  • Type r to replace the character under the cursor.
  • Type R to enter Replace mode until <ESC> is pressed.

Delete

  • Press x to delete the character under the cursor.

Paste

  • Type p to put previously deleted text after the cursor.

Others

  • Type :! followed by an external command to execute that command.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,108评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,699评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,812评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,236评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,583评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,739评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,957评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,704评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,447评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,643评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,133评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,486评论 3 256
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,151评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,889评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,782评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,681评论 2 272

推荐阅读更多精彩内容