zoukankan      html  css  js  c++  java
  • 实用手册:130+ 提高开发效率的 vim 常用命令

      Vim 是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器。这里收录了130+程序员必备的 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 file
    gg move the cursor to the begining of the file
    L move the cursor to the bottom of the screen
    :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 with somethingelse

    替换

    :%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

    选项卡/窗口

    :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

    标记

    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
    您可能感兴趣的相关文章

    本文链接:实用手册:130+ 程序员必备的 vim 常用命令

    编译来源:梦想天空 ◆ 关注前端开发技术 ◆ 分享网页设计资源

  • 相关阅读:
    JAVA URI URL 区别
    超轻量级DI容器框架Google Guice与Spring框架的区别教程详解及其demo代码片段分享
    开源框架:Apache的DBUtils框架
    java url openConnection get post 请求
    java 使用jxl poi 操作excel
    如何用Curl 来post xml 数据
    Linux Shell脚本编程--Linux特殊符号大全
    linux查看各服务状态以及开启和关闭
    eclipse中点不出来提示
    cocos2dx切换场景
  • 原文地址:https://www.cnblogs.com/lhb25/p/130-essential-vim-commands.html
Copyright © 2011-2022 走看看