vim——黑暗时代的最强编辑器

 

vim 文本换行

gq{motion} % format the line that {motion} moves over
{Visual}gq % format the visually selected area
gqq        % format the current line
gf    open file under current cursor

 VIM

setlocal all
setlocal   ...  Like ":set" but set only the value local to the current buffer or window. 
setglobal  ...   Like ":set" bu set only the global value for a local option without changing the local value.
For buffer-local and window-local options:
        Command                      global value                  local value
      :set option=value                 set                           set
 :setlocal option=value                  -                            set
:setglobal option=value                 set                            -
     :set option?                      -                           display
 :setlocal option?                       -                           dispaly
:setglobal option?                     display                         -

VIM

'formatoptions' 'fo'  string(Vim default: "tcq", Vi default: "vt")
                      local to buffer
This is a sequence of letters which describes how automatic formatting is to be done.
NOTE: This option is set to the Vi default value when 'compatible' is set and to the Vim default value when 'compatible' is reset.
ls help
 u            an unlisted buffer (only displayed when [!] is used)
    %        the buffer in the current window
    #         the alternate buffer for ":e #" and CTRL-^
      a       an active buffer: it is loaded and visible
      h       a hidden buffer: It is loaded, but currently not displayed in a window
        -      a buffer with 'modifiable' off
        =     a read-only buffer
        ?      a terminal buffer without a job
          +    a modified buffer
          x    a buffer with read errors
Unless I'm missing something, Vim already does that. If I highlight some text using the mouse or by typing v and moving the cursor, I see at the bottom of the screen

-- VISUAL --                                        12

set showcmd

echo len("foo")
echo strlen("foo")
zf{motion} or {Visual}zf             Operator to create a fold.
                                               This only works when 'foldmethod' is "manual" or "marker". The new fold will be closed for the "manual" method. 'foldenable' will be set.
Also see |fold-create-marker|.

zo                            Open one fold under the cursor. When a count is given, that many folds deep will be opened. In Visual mode one level of folds is opened for all lines in the selected area.

zc                            Close one fold under the cursor. When a count is given, that many folds deep are closed. In Visual mode one level of folds is closed for all lines in the selected area. 'foldenable' will be set.

 VIM Search

Multiple repeats                 multi-repeat
                                 :g  :global  E148

:[range]g[lobal]/{pattern}/[cmd]
                                    Execute the Ex command [cmd] (default ":p") on the
                                    lines within [range] where {pattern} matches.

:[range]g[lobal]!/{pattern}/[cmd]
                                    Execute the Ex command [cmd] (default ":p") on the
                                    lines within [range] where {pattern} does NOT match.

:[range]v[global]/{pattern}/[cmd]
                                    Same as :g!

Instead of the '/' which surrounds the {pattern}, you can use any other single
byte character, but not an alphabetic character, '\', '"' or '|'.
This is useful if you want to include a '/' in the search pattern or replacement
string.

 VIM Echo

:!echo %                        --> filename
             The arguments of ":!" are expanded, see :_%
:!echo "%"                      --> filename or 'filename"
             Like the previous example. Whether you see the double
             quotes or not depends on your 'shell'.
:echo %                          --> nothing
              The '%' is an illegal character in an expression.
:echo "%"                       --> %
              This just echoes the '%' character.
:echo expand("%")          --> filename
              This calls the expand() function to expand the '%'.

                                           filename-modifiers
:_%   ::8   ::p   ::.   ::~  ::h  ::t  ::r  ::e  ::s  ::gs  ::S
    %:8  %:p  %:.  %:~  %:h  %:t  %:t  %:r  %:e  %:s  %:gs  %:S
The file name modifiers can be use after "%", "#", "#n", "<cfile>", "<sfile>",
"<afile>" or "<abuf>". They are also used with the fnamemodify() function.

Bibliography

http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html

https://www.cs.swarthmore.edu/oldhelp/vim/silly.html

https://gist.github.com/awidegreen/3854277

原文地址:https://www.cnblogs.com/anyboo/p/2660353.html