zoukankan      html  css  js  c++  java
  • 5、vi常见用法

    vi常见用法 

    Cursor movement 

    · h - move left 

    · j - move down 

    · k - move up 

    · l - move right 

    · w - jump by start of words (punctuation considered words) 

    · W - jump by words (spaces separate words) 

    · e - jump to end of words (punctuation considered words) 

    · E - jump to end of words (no punctuation) 

    · b - jump backward by words (punctuation considered words) 

    · B - jump backward by words (no punctuation) 

    · 0 - (zero) start of line 

    · ^ - first non-blank character of line 

    · $ - end of line 

    · G - Go To command (prefix with number - 5G goes to line 5) 

    Note: Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines. 

    Insert Mode - Inserting/Appending text 

    · i - start insert mode at cursor 

    · I - insert at the beginning of the line 

    · a - append after the cursor 

    · A - append at the end of the line 

    · o - open (append) blank line below current line (no need to press return) 

    · O - open blank line above current line 

    · ea - append at end of word 

    · Esc - exit insert mode 

    Editing 

    · r - replace a single character (does not use insert mode) 

    · J - join line below to the current one 

    · cc - change (replace) an entire line 

    · cw - change (replace) to the end of word 

    · c$ - change (replace) to the end of line 

    · s - delete character at cursor and subsitute text 

    · S - delete line at cursor and substitute text (same as cc) 

    · xp - transpose two letters (delete and paste, technically) 

    · u - undo 

    · . - repeat last command 

    Marking text (visual mode) 

    · v - start visual mode, mark lines, then do command (such as 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 braces) 

    · aB - a {} block (with brackets) 

    · ib - inner () block 

    · iB - inner {} block 

    · Esc - exit visual mode 

    Visual commands 

    · > - shift right 

    · < - shift left 

    · y - yank (copy) marked text 

    · d - delete marked text 

    · ~ - switch case 

    Cut and Paste 

    · yy - yank (copy) a line 

    · 2yy - yank 2 lines 

    · yw - yank word 

    · y$ - yank to end of line 

    · p - put (paste) the clipboard after cursor 

    · P - put (paste) before cursor 

    · dd - delete (cut) a line 

    · dw - delete (cut) the current word 

    · x - delete (cut) current character 

    Exiting 

    · :w - write (save) the file, but don't exit 

    · :wq - write (save) and quit 

    · :q - quit (fails if anything has changed) 

    · :q! - quit and throw away changes 

    Search/Replace 

    · /pattern - search for pattern 

    · ?pattern - search backward for pattern 

    · n - repeat search in same direction 

    · N - repeat search in opposite direction 

    · :%s/old /new /g - replace all old with new throughout file 

    · :%s/old /new /gc - replace all old with new throughout file with confirmations 

    Working with multiple files 

    · :e filename - Edit a file in a new buffer 

    · :bnext (or :bn) - go to next buffer 

    · :bprev (of :bp) - go to previous buffer 

    · :bd - delete a buffer (close a file) 

    · :sp filename - Open a file in a new buffer and split window 

    · ctrl+ws - Split windows 

    · ctrl+ww - switch between windows 

    · ctrl+wq - Quit a window 

    · ctrl+wv - Split windows vertically 

     

     

    参考 

    [1] http://blog.csdn.net/zhuichao001/archive/2010/06/25/5693122.aspx 

    Cursor movement 

     

    · h - move left

     

    · j - move down

     

    · k - move up

     

    · l - move right

     

    · w - jump by start of words (punctuation considered words)

     

    · W - jump by words (spaces separate words)

     

    · e - jump to end of words (punctuation considered words)

     

    · E - jump to end of words (no punctuation)

     

    · b - jump backward by words (punctuation considered words)

     

    · B - jump backward by words (no punctuation)

     

    · 0 - (zero) start of line

     

    · ^ - first non-blank character of line

     

    · $ - end of line

     

    · G - Go To command (prefix with number - 5G goes to line 5)

     

    Note: Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines.

     

    Insert Mode - Inserting/Appending text

     

    · i - start insert mode at cursor

     

    · I - insert at the beginning of the line

     

    · a - append after the cursor

     

    · A - append at the end of the line

     

    · o - open (append) blank line below current line (no need to press return)

     

    · O - open blank line above current line

     

    · ea - append at end of word

     

    · Esc - exit insert mode

     

    Editing

     

    · r - replace a single character (does not use insert mode)

     

    · J - join line below to the current one

     

    · cc - change (replace) an entire line

     

    · cw - change (replace) to the end of word

     

    · c$ - change (replace) to the end of line

     

    · s - delete character at cursor and subsitute text

     

    · S - delete line at cursor and substitute text (same as cc)

     

    · xp - transpose two letters (delete and paste, technically)

     

    · u - undo

     

    · . - repeat last command

     

    Marking text (visual mode)

     

    · v - start visual mode, mark lines, then do command (such as 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 braces)

     

    · aB - a {} block (with brackets)

     

    · ib - inner () block

     

    · iB - inner {} block

     

    · Esc - exit visual mode

     

    Visual commands

     

    · > - shift right

     

    · < - shift left

     

    · y - yank (copy) marked text

     

    · d - delete marked text

     

    · ~ - switch case

     

    Cut and Paste

     

    · yy - yank (copy) a line

     

    · 2yy - yank 2 lines

     

    · yw - yank word

     

    · y$ - yank to end of line

     

    · p - put (paste) the clipboard after cursor

     

    · P - put (paste) before cursor

     

    · dd - delete (cut) a line

     

    · dw - delete (cut) the current word

     

    · x - delete (cut) current character

     

    Exiting

     

    · :w - write (save) the file, but don't exit

     

    · :wq - write (save) and quit

     

    · :q - quit (fails if anything has changed)

     

    · :q! - quit and throw away changes

     

    Search/Replace

     

    · /pattern - search for pattern

     

    · ?pattern - search backward for pattern

     

    · n - repeat search in same direction

     

    · N - repeat search in opposite direction

     

    · :%s/old /new /g - replace all old with new throughout file

     

    · :%s/old /new /gc - replace all old with new throughout file with confirmations

     

    Working with multiple files

     

    · :e filename - Edit a file in a new buffer

     

    · :bnext (or :bn) - go to next buffer

     

    · :bprev (of :bp) - go to previous buffer

     

    · :bd - delete a buffer (close a file)

     

    · :sp filename - Open a file in a new buffer and split window

     

    · ctrl+ws - Split windows

     

    · ctrl+ww - switch between windows

     

    · ctrl+wq - Quit a window

     

    · ctrl+wv - Split windows vertically

     

     

    替换

     

    s/old/new/

     

    s/old/new/g 替换一行中的所有old

     

    #,#s/old/new/g 两行之间的所有old

     

    %s/old/new/g 所有的old都替换

     

    %s/old/new/gc 所有的old都替换,但是每次都提示

     

     

    参考

     

    [1] http://blog.csdn.net/zhuichao001/archive/2010/06/25/5693122.aspx

     

  • 相关阅读:
    virtualenvwrapper GitBash下的配置使用
    MySQL主从复制
    Nginx
    LVS
    MySQL
    Docker Swarm
    flask数据库操作
    flask 数据库迁移
    pytest.mark.parametrize 详解
    redis作为变量池在接口自动化中的应用
  • 原文地址:https://www.cnblogs.com/mydomain/p/1834120.html
Copyright © 2011-2022 走看看