zoukankan      html  css  js  c++  java
  • 每个程序员都应该知道的 100 个 vim 命令

    从 1970 年开始,vi 和 vim 就成为了程序员最喜爱的文本编辑器之一。5年前,我写了一个问自己名为 “每个程序员都应该知道的 100 个 vim 命令” 这次算是之前那篇文章的改进版,希望你会喜欢。

    基础

    :e filename

    Open filename for edition

    :w

    Save file

    :q

    Exit Vim

    :q!

    Quit without saving

    :x

    Write file (if changes has been made) and exit

    :sav filename

    Saves file as filename

    .

    Repeats the last change made in normal mode

    5.

    Repeats 5 times the last change made in normal mode

    在文件中移动

    k or Up Arrow

    move the cursor up one line

    j or Down Arrow

    move the cursor down one line

    e

    move the cursor to the end of the word

    b

    move the cursor to the begining of the word

    0

    move the cursor to the begining of the line

    G

    move the cursor to the end of the line

    gg

    move the cursor to the begining of the file

    L

    move the cursor to the end of the file

    :59

    move cursor to line 59. Replace 59 by the desired line number.

    20|

    move cursor to column 20.

    %

    Move cursor to matching parenthesis

    [[

    Jump to function start

    [{

    Jump to block start

    剪切、复制和粘贴

    y

    Copy the selected text to clipboard

    p

    Paste clipboard contents

    dd

    Cut current line

    yy

    Copy current line

    y$

    Copy to end of line

    D

    Cut to end of line

    搜索

    /word

    Search word from top to bottom

    ?word

    Search word from bottom to top

    *

    Search the word under cursor

    /cstring

    Search STRING or string, case insensitive

    /jo[ha]n

    Search john or joan

    /< the

    Search the, theatre or then

    /the>

    Search the or breathe

    /< the>

    Search the

    /< ¦.>

    Search all words of 4 letters

    //

    Search fred but not alfred or frederick

    /fred|joe

    Search fred or joe

    /<dddd>

    Search exactly 4 digits

    /^ {3}

    Find 3 empty lines

    :bufdo /searchstr/

    Search in all open files

    bufdo %s/something/somethingelse/g

    Search something in all the open buffers and replace it withsomethingelse

    替换

    :%s/old/new/g

    Replace all occurences of old by new in file

    :%s/onward/forward/gi

    Replace onward by forward, case unsensitive

    :%s/old/new/gc

    Replace all occurences with confirmation

    :2,35s/old/new/g

    Replace all occurences between lines 2 and 35

    :5,$s/old/new/g

    Replace all occurences from line 5 to EOF

    :%s/^/hello/g

    Replace the begining of each line by hello

    :%s/$/Harry/g

    Replace the end of each line by Harry

    :%s/onward/forward/gi

    Replace onward by forward, case unsensitive

    :%s/ *$//g

    Delete all white spaces

    :g/string/d

    Delete all lines containing string

    :v/string/d

    Delete all lines containing which didn’t contain string

    :s/Bill/Steve/

    Replace the first occurence of Bill by Steve in current line

    :s/Bill/Steve/g

    Replace Bill by Steve in current line

    :%s/Bill/Steve/g

    Replace Bill by Steve in all the file

    :%s/^M//g

    Delete DOS carriage returns (^M)

    :%s/ / /g

    Transform DOS carriage returns in returns

    :%s#<[^>]+>##g

    Delete HTML tags but keeps text

    :%s/^(.*) 1$/1/

    Delete lines which appears twice

    Ctrl+a

    Increment number under the cursor

    Ctrl+x

    Decrement number under cursor

    ggVGg?

    Change text to Rot13

    大小写

    Vu

    Lowercase line

    VU

    Uppercase line

    g~~

    Invert case

    vEU

    Switch word to uppercase

    vE~

    Modify word case

    ggguG

    Set all text to lowercase

    gggUG

    Set all text to uppercase

    :set ignorecase

    Ignore case in searches

    :set smartcase

    Ignore case in searches excepted if an uppercase letter is used

    :%s/<./u&/g

    Sets first letter of each word to uppercase

    :%s/<./l&/g

    Sets first letter of each word to lowercase

    :%s/.*/u&

    Sets first letter of each line to uppercase

    :%s/.*/l&

    Sets first letter of each line to lowercase

    读写文件

    :1,10 w outfile

    Saves lines 1 to 10 in outfile

    :1,10 w >> outfile

    Appends lines 1 to 10 to outfile

    :r infile

    Insert the content of infile

    :23r infile

    Insert the content of infile under line 23

    文件浏览器

    :e .

    Open integrated file explorer

    :Sex

    Split window and open integrated file explorer

    :Sex!

    Same as :Sex but split window vertically

    :browse e

    Graphical file explorer

    :ls

    List buffers

    :cd ..

    Move to parent directory

    :args

    List files

    :args *.php

    Open file list

    :grep expression *.php

    Returns a list of .php files contening expression

    gf

    Open file name under cursor

    和 Unix 系统交互

    :!pwd

    Execute the pwd unix command, then returns to Vi

    !!pwd

    Execute the pwd unix command and insert output in file

    :sh

    Temporary returns to Unix

    $exit

    Retourns to Vi

    对齐

    :%!fmt

    Align all lines

    !}fmt

    Align all lines at the current position

    5!!fmt

    Align the next 5 lines

    Tabs/Windows

    :tabnew

    Creates a new tab

    gt

    Show next tab

    :tabfirst

    Show first tab

    :tablast

    Show last tab

    :tabm n(position)

    Rearrange tabs

    :tabdo %s/foo/bar/g

    Execute a command in all tabs

    :tab ball

    Puts all open files in tabs

    :new abc.txt

    Edit abc.txt in new window

    分屏显示

    :e filename

    Edit filename in current window

    :split filename

    Split the window and open filename

    ctrl-w up arrow

    Puts cursor in top window

    ctrl-w ctrl-w

    Puts cursor in next window

    ctrl-w_

    Maximize current window vertically

    ctrl-w|

    Maximize current window horizontally

    ctrl-w=

    Gives the same size to all windows

    10 ctrl-w+

    Add 10 lines to current window

    :vsplit file

    Split window vertically

    :sview file

    Same as :split in readonly mode

    :hide

    Close current window

    :­nly

    Close all windows, excepted current

    :b 2

    Open #2 in this window

    自动完成

    Ctrl+n Ctrl+p (in insert mode)

    Complete word

    Ctrl+x Ctrl+l

    Complete line

    :set dictionary=dict

    Define dict as a dictionnary

    Ctrl+x Ctrl+k

    Complete with dictionnary

    Marks

    m {a-z}

    Marks current position as {a-z}

    ' {a-z}

    Move to position {a-z}

    ''

    Move to previous position

    缩写

    :ab mail mail@provider.org

    Define mail as abbreviation of mail@provider.org

    文本缩进

    :set autoindent

    Turn on auto-indent

    :set smartindent

    Turn on intelligent auto-indent

    :set shiftwidth=4

    Defines 4 spaces as indent size

    ctrl-t, ctrl-d

    Indent/un-indent in insert mode

    >>

    Indent

    <<

    Un-indent

    =%

    Indent the code between parenthesis

    1GVG=

    Indent the whole file

    语法高亮

    :syntax on

    Turn on syntax highlighting

    :syntax off

    Turn off syntax highlighting

    :set syntax=perl

    Force syntax highlighting

  • 相关阅读:
    进程Queue
    进程ID
    多进程
    queue 生产者、清费者
    让静态页面显示用户登录状态
    apache2.2 + tomcat6 整合以及集群配置整理
    linux安装rzsz
    http_load
    用Ant实现Java项目的自动构建和部署
    Openfire:安装指南
  • 原文地址:https://www.cnblogs.com/ikaka/p/3281146.html
Copyright © 2011-2022 走看看