VIM命令集
Command | Action | Notes |
vim file +54 | open file and go to line 54 | any : command can be run using + on command line |
vim -O file1 file2 | open file1 and file2 side by side | |
Insert | enter insert mode | so you can start typing. Alternatively one can use i ora. |
Esc | leave insert mode | so you can issue commands. Note in VIM the cursor keys & {Home, End, Page{up,down}} and Delete and Backspace work as expected in any mode, so you don't need to go back to command mode nearly as much as the origonal vi. Note even Ctrl+{left,right} jumps words like most other editors. Note also Ctrl+[ and Ctrl+c are equivalent to Esc and may be easier to type. Also Ctrl+o in insert mode will switch to normal mode for one command only and automatically switch back. |
:command | runs named command | |
:help word | shows help on word | Typing Ctrl+d after word shows all entries containing word |
:echo &word | shows value of word | |
windows | ||
:e | set buffer for current window | you can optionally specify a new file or existing buffer number (#3 for e.g.). Note if you specify a directory a file browser is started. E.g. :e . will start the browser in the current directory (which can be changed with the :cd command). |
:sp | new window above | ditto |
:vs | new window to left | ditto |
:q | close current window | |
:qa | close all windows | add trailing ! to force |
Ctrl+w {left,right,up,down} | move to window | |
Ctrl+w Ctrl+w | toggle window focus | |
Ctrl+w = | autosize windows | to new terminal size for e.g. |
:ba | new window for all buffers | ":vert ba" tiles windows vertically |
buffers | ||
:ls | list buffers | |
gf | open file under cursor | |
:bd | delete buffer | and any associated windows |
:w | save file | Note :up[date] only writes file if changes made, but it's more awkward to type |
:sav filename | save file as filename | Note :w filename doesn't switch to new file. Subsequent edits/saves happen to existing file |
undo/redo | ||
u | undo | |
Ctrl+r | redo | |
. | repeat | |
navigation | ||
gg | Goto start of file | |
G | Goto end of file | |
:54 | Goto line 54 | |
80| | Goto column 80 | |
Ctrl+g | Show file info | including your position in the file |
ga | Show character info | g8 shows UTF8 encoding |
Ctrl+e | scroll up | Ctrl+x needed first for insert mode |
Ctrl+y | scroll down | Ctrl+x needed first for insert mode |
zt | scroll current line to top of window | |
w | Goto next word | Note Ctrl+{right} in newer vims (which work also in insert mode) |
b | Goto previous word | Note Ctrl+{left} in newer vims |
[{ | Goto previous { of current scope | |
% | Goto matching #if #else,{},(),[],/* */ | must be one on line |
zi | toggle folds on/off | |
bookmarks | ||
m {a-z} | mark position as {a-z} | E.g. m a |
' {a-z} | move to position {a-z} | E.g. ' a |
' ' | move to previous position | |
'0 | open previous file | handy after starting vim |
selection/whitespace | ||
v | select visually | use cursor keys, home, end etc. |
Shift+v | line select | CTRL+v = column select |
Delete | cut selection | |
"_x | delete selection | without updating the clipboard or yank buffer. I remap x to this in my .vimrc |
y | copy selection | |
p | paste (after cursor) | P is paste before cursor |
"Ay | append selected lines to register a | use lowercase a to initialise register |
"ap | paste contents of a | |
gq | reformat selection | justifies text and is useful with :set textwidth=70 (80 is default) |
= | reindent selection | very useful to fix indentation for c code |
> | indent section | useful with Shift+v% |
< | unindent section | remember . to repeat and u to undo |
:set list! | toggle visible whitespace | See also listchars in my .vimrc |
clipboard shortcuts | ||
dd | cut current line | |
yy | copy current line | |
D | cut to end of line | |
y$ | copy to end of line | |
search/replace | ||
/regexp | searches forwards for regexp | ? reverses direction |
n | repeat previous search | N reverses direction |
* | searches forward for word under cursor | # reverses direction |
:%s/1/2/gc | search for regexp 1 and replace with 2 in file | c = confirm change |
:s/1/2/g | search for regexp 1 and replace with 2 in (visual) selection | |
programming | ||
K | lookup word under cursor in man pages | 2K means lookup in section 2 |
:make | run make in current directory | |
Ctrl+] | jump to tag | Ctrl+t to jump back levels. I map these to Alt+⇦⇨ in my .vimrc |
vim -t name | Start editing where name is defined | |
Ctrl+{n,p} | scroll forward,back through autocompletions for word before cursor | uses words in current file (and included files) by default. You can change to a dictionary for e.g: set complete=k/usr/share/dicts/words Note only works in insert mode |
Ctrl+x Ctrl+o | scroll through language specific completions for text before cursor | "Intellisense" for vim (7 & later). :help compl-omni for more info. Useful for python, css, javascript, ctags, ... Note only works in insert mode |
external filters | ||
:%!filter | put whole file through filter | |
:!filter | put (visual) selection through filter | |
:,!command | replace current line with command output | |
map <f9> :w<CR>:!python %<CR> | run current file with external program |
(来源:http://www.pixelbeat.org/vim.tips.html)
VIM命令集的更多相关文章
- linux---Vim命令集
Vim命令集 命令历史 以:和/开头的命令都有历史纪录,能够首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗体中输入下面命令就可以 vim 直接启动vim vim filena ...
- [转载]VIM命令合集
Vim命令合集 http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 命令历史 以:和/开头的命令都有历史纪录, ...
- Vim命令合集(四)
Vim命令合集 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filena ...
- 【转】Vim命令合集
Vim命令合集 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filena ...
- Vim命令大全
1.进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于 ...
- Mysql 常用命令集
1.mysqlbinlog工具使用方法如下: 先使用 show binary logs 查看 在使用导出命令 mysqlbinlog -R -uroot -pxxxx -hxxx.xxx.xxx.xx ...
- 【转】vim 命令
Vim命令合集 建议直接看原文:(排版有些乱) 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接 ...
- centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB ...
- linux下vim命令
进入vim的命令 vim filename :打开或新建文件,并将光标置于第一行首 vim +n filename :打开文件,并将光标置于第n行首 vim + filename :打开文件,并将光标 ...
随机推荐
- 使用Intent 将底层栈里所有的activity都清理掉
可以利用清理历史栈的方法,来巧妙关闭所有activity,首先用一个设置为不可见的activity A来启动程序,这个activity A的作用只是用来垫栈底,只有启动和退出程序才会用到这个activ ...
- 临界段CCriticalSection的使用
类CCriticalSection的对象表示一个“临界区”,它是一个用于同步的对象,同一时刻仅仅同意一个线程存取资源或代码区.临界区在控制一次仅仅有一个线程改动数据或其他的控制资源时很实用.比如,在链 ...
- NET Platform Standard
NET Platform Standard 相关博文:ASP.NET 5 Target framework dnx451 and dnxcore50 .NET Platform Standard:ht ...
- mojo 默认启用utf-8
[root@dr-mysql01 ~]# cat f1.pl use Encode; print "验证111\n"; my $d=encode_utf8('验证'); print ...
- 一句话解释JVM中空间分配担保的问题
先解释YGC: 当对象生成在EDEN区失败时,出发一次YGC,先扫描EDEN区中的存活对象,进入S0区,S0放不下的进入OLD区,再扫描S1区,若存活次数超过阀值则进入OLD区,其它进入S0区,然后S ...
- Java调用cmd命令 打开一个站点
使用Java程序打开一个站点 近期做了个东西使用SWT技术在一个client程序 须要升级时在提示升级 点击窗口上的一个连接 打开下载网页 花费了我非常长时间 用到了把它记录下来 怕是忘记,须要时能 ...
- Response.Redirect 打开这两种方法的一种新形式
在一般情况下.Response.Redirect 该方法是在server年底转向,因此,除非 Response.Write("<script>window.location='h ...
- datarow用linq查询
List<string> f_guids = (from DataRow dr in dt2.Rows select dr["f_GUID"].ToString()). ...
- linux 终端控制-- 多彩输出 格式排版
linux 终端控制-- 多彩输出 格式排版 在unix/linux的终端下,怎么控制终端输出的颜色和格式呢,当然了有专门的工具,tput,但是能被terminal直接读懂的格式化字符串更通用. 先来 ...
- ANDROID L——Material Design综合应用(Demo)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Material Design: Material Design是Google推出的一个全 ...