Vim 常用命令记录
移动光标
单位级
h
向左一字符j
下一行k
上一行l
向右一字符
单词级
w
orW
向右移动到下一单词开头e
orE
向右移动到单词结尾b
orB
向左移动到单词开头
块级
gg
到文档第一行G
到文档最后一行0
到行首(第 1 列)^
到第一个非空白字符$
到行尾H
移动到屏幕顶端M
移动到屏幕中间L
移动到屏幕底部Ctrl-d
向下移动半页Ctrl-u
向上移动半页Ctrl-f
向下移动一页Ctrl-b
向上移动一页:<N>
or<N>gg
跳转到第 N 行:+<N>
or<N>j
向下跳 N 行:-<N>
or<N>k
向上跳 N 行
在 Vim 中打开文件
:e <filename>
打开名为 filename 的文件,若文件不存在则创建之:Ex
在 Vim 中打开目录树,光标选中后回车打开对应文件(提示:-
进入上级目录)
查找
文档内查找
*
向后查找光标当前所在单词#
向前查找光标当前所在单词/<search>
向后查找指定字符串?<search>
向前查找指定字符串n
继续查找下一个N
继续查找上一个
行内查找
f<X>
当前行内向行尾方向查找并定位到字符X
t<X>
当前行内向行尾方向查找并定位到字符X
之前F<X>
当前行内向行首方向查找并定位到字符X
T<X>
当前行内向行首方向查找并定位到字符X
之后;
继续向当前方向查找下一个字符,
向当前相反方向查找下一个字符
匹配查找
Vim 中可以使用 %
对 (
和 )
,[
和 ]
,{
和 }
进行匹配查找
当光标位于其中一个符号上时
按下 %
,光标会跳到与之匹配的另外一个符号上
修改文档
插入
i
当前字符前插入a
当前字符后插入I
行首插入A
行尾插入o
在下一行插入O
在上一行插入
删除(并保存到 Vim 剪贴板)
s
删除当前字符,并进入INSERT
模式S
删除当前行并保存到 Vim 剪贴板,同时进入INSERT
模式(等同于cc
)x
删除当前字符,相当于 insert 模式下的Delete
X
删除前一个字符,相当于 insert 模式下的Backspace
dd
删除当前行,并将删除的内容保存到 Vim 剪贴板dw/de
删除一个连续的字符串,区别是删不删空格d<X>
删除指定内容并保存到 Vim 剪贴板cc
删除当前行并保存到 Vim 剪贴板,同时进入INSERT
模式c<X>
删除指定内容并保存到 Vim 剪贴板,同时进入INSERT
模式xp
非行尾交换两个字符,如从bs变成sbdf"
删除到出现的第一个双引号
复制
yy
复制当前行到 Vim 剪贴板y<X>
复制指定内容到 Vim 剪贴板yw
复制光标开始的一个单词y$
复制光标到行尾yfA
复制光标到第一个大写A中间的内容y2fA
复制光标到第二个大写A中间的内容
粘贴
p
在当前位置后粘贴P
在当前位置前粘贴
合并
J
将当前行与下一行合并
替换
r<X>
将当前字符替换为 Xgu<X>
将指定的文本转换为小写gU<X>
将指定的文本转换为大写:%s/<search>/<replace>/
查找 search 内容并替换为 replace 内容cw
替换一个单词
撤销、重做
u
撤销Ctrl-r
重做
保存文件
:w
保存当前文件:wa
保存全部文件:wq
orZZ
保存并退出:q!
orZQ
强制退出,不保存:saveas <new filename>
文件另存为:w <new filename>
文件另存一份名为<new filename>
的副本并继续编辑原文件
调整文本
%s/$/sth/
在行尾追加sth%s/^M//g
替换掉dos换行符,^M使用ctrl+v + Enter即可输入g/^\s$/d*
删除空行以及只有空格的行%s/#.*//g
删除#之后的字符
简单设置 Vim
:set number
显示行号:set relativenumber
显示相对行号(这个非常重要,慢慢体会):set hlsearch
搜索结果高亮:set autoindent
自动缩进:set smartindent
智能缩进:set tabstop=4
设置 tab 制表符所占宽度为 4:set softtabstop=4
设置按tab
时缩进的宽度为 4:set shiftwidth=4
设置自动缩进宽度为 4:set expandtab
缩进时将 tab 制表符转换为空格:filetype on
开启文件类型检测:syntax on
开启语法高亮
缩进
>>
向右缩进当前行<<
向左缩进当前行
自动排版
==
自动排版当前行gg=G
当前文档全文自动排版<N>==
对从当前行开始的 N 行进行自动排版=<N>j
对当前行以及向下 N 行进行自动排版=<N>k
对当前行以及向上 N 行进行自动排版
窗口分屏
分屏方式
:split
缩写:sp
orCtrl-w s
上下分屏:vsplit
缩写:vs
orCtrl-w v
左右分屏:diffsplit
缩写:diffs
diff 模式打开一个分屏,后面可以加上 {filename}
窗口跳转
Ctrl-w w
激活下一个窗口Ctrl-w j
激活下方窗口Ctrl-w k
激活上方窗口Ctrl-w h
激活左侧窗口Ctrl-w l
激活右侧窗口
移动分屏
Ctrl-w L
移动到最右侧Ctrl-w H
移动到最左侧Ctrl-w K
移动到顶部Ctrl-w J
移动到底部
屏幕缩放
Ctrl-w =
平均窗口尺寸Ctrl-w +
增加高度Ctrl-w -
缩减高度Ctrl-w _
最大高度Ctrl-w >
增加宽度Ctrl-w <
缩减宽度Ctrl-w |
最大宽度
标签页
创建标签页
:tabnew
or:tabedit
缩写:tabe
打开新标签页Ctrl-w gf
在新标签页中打开当前光标所在位置的文件名
注意::tabnew
和 :tabedit
后面都可以跟一个 <空格><文件名> 用以在新标签页中
打开指定文件,还可以在 :
后面加一个数字,指出新标签页在列表中的位置(从 0 开始)。
切换标签页
gt
or:tabnext
缩写:tabn
下一个标签页(最后一个会循环到第一个)gT
or:tabprevious
缩写:tabp
上一个标签页(第一个会循环到最后一个):tabrewind
缩写:tabr
or:tabfirst
缩写:tabfir
到第一个:tablast
缩写:tabl
到最后一个标签页
关闭标签页
:tabclose
缩写:tabc
关闭当前标签页:-tabc
关闭上一个标签页:+tabc
关闭下一个标签页:tabonly
缩写:tabo
关闭其他标签页
函数设定
- 定义保存退出函数
" 定义保存退出函数
func! SaveExit()
exec "wq"
endfunc" 映射Ctrl+z键调用保存退出函数
map <C-z> :call SaveExit()<CR>
imap <C-z> <ESC> :call SaveExit()<CR>
vmap <C-z> <ESC> :call SaveExit()<CR>
- 定义保存编译并执行代码函数
" 定义保存编译并执行代码函数
func! ComplieCode()
exec "w"
if &filetype == "c"
exec "!gcc -std=gnu99 % -lm && ./a.out"
endif
endfunc" 映射Ctrl+x键调用编译并执行函数
map <C-x> :call ComplieCode()<CR>
imap <C-x> <ESC> :call ComplieCode()<CR>
vmap <C-x> <ESC> :call ComplieCode()<CR>
- 定义添加头文件和Main函数
" 定义添加头文件和Main函数
func! InsertMain()
if &filetype == "c"
call setline(1,"#include <stdio.h>")
call setline(2,"")
call setline(3,"int main(int argc,const char* argv[])")
call setline(4,"{")
call setline(5,"\t")
call setline(6,"}")
exec "5"
endif
endfunc
map <C-p> :call InsertMain()<CR>i<TAB>" 自动添加头文件卫士
func! InsertIfndef()
call setline(1,"#ifndef ".toupper(expand("%:t:r"))."_H")
call setline(2,"#define ".toupper(expand("%:t:r"))."_H")
call setline(3,"")
call setline(4,"#endif//".toupper(expand("%:t:r"))."_H")
endfuncautocmd BufNewFile *.h :call InsertIfndef()
Vim 常用命令记录相关推荐
- 自己用到的vim常用命令
一.前言 这里整理的是我在实习期间用到的常用vim命令,特记录如下,以免忘记. 二.vim常用命令 1.vim中的光标移动 shift+6(^):跳到行首(第一个非空格字符)(注:在shell跳到行首 ...
- linux 自定义vi dd,Vim常用命令及配置方案
几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用vim都要再去回温下基本操作,很 ...
- Vim常用命令和配置
[TOC] Vim常用命令和配置 Mac 终端键入 vimtutor 即可进入Vim入门教程 问题收集 vim代码粘贴,格式混乱到逆天.这是因为vim设置了自动缩进造成的问题, 所以如果你需要在ins ...
- Linux—vim常用命令
vim常用命令: 1. 键入i进入编辑模式 2. esc进入命令模式 3. a,进入编辑模式 3. b,光标移动到单词前,end,光标移动到行尾 4. home光标移动到行首 5. cc,删除当前行, ...
- ElasticSearch常用命令记录
ElasticSearch常用命令记录 < - 个人学习笔记 - > 软件版本:curl -s localhost:9200/?pretty 输出中"version" ...
- ubuntu系统vim常用命令学习以及ubuntu软件下载安装
文章目录 一.ubuntu系统vim常用命令学习 (一)进入进入vim编辑器的方式 (二)vi的三种工作方式 (三)退出vi的命令 (四)命令模式下的各种命令 1.光标移动命令 2.插入命令 3.删除 ...
- vi/vim常用命令 zz
http://blog.sina.com.cn/s/blog_492101c70100o10c.html 最近整理的vi/vim常用命令,有需要的童鞋拿去用吧 (本来是在excel中的,但是没有地方上 ...
- vim常用命令之多行注释和多行删除
vim常用命令之多行注释和多行删除 vim中多行注释和多行删除命令,这些命令也是经常用到的一些小技巧,可以大大提高工作效率. 1.多行注释: 1). 首先按esc进入命令行模式下,按下Ctrl ...
- centos查看盘符_Centos下磁盘管理的常用命令记录(如查找大文件)
Centos下磁盘管理的常用命令记录 查看系统磁盘空间占用,使用命令: df -h 结果: 查看磁盘inode使用情况,如果inode用完了,磁盘就没法写入新的内容了: df -i 结果: 如何查找磁 ...
最新文章
- 你知道Linux和Unix的区别吗
- Unchecked call to ‘mapoPair(PairFunction<T,K2,V2>)‘ as a member of raw type
- shell 脚本学习及troubleshooting
- leetcode 761. Special Binary String
- 高斯计传感器使用的霍尔传感器原理
- luminex细胞因子检测
- 最简单的 QQ分享、微信分享、一键加QQ群 引入
- 高中计算机应用面试教资真题,2019下半年高中信息技术教师资格证面试试题(精选)第四批...
- 有趣的智力题和概率题
- h5计时器(requestAnimationFrame)
- c语言编程后怎么做成软件,编程软件是用来编程的,那编程软件是怎么做出来的?...
- 【干货】怎么将阿里云ECS的数据下载到本地
- 质性分析软件nvivo的学习(一)
- 抽屉原理与Simhash
- NetWorker Pro for mac(网络流量监控软件)
- 安卓APP之加固技术
- 解决Windows11/10本地账户改用Microsoft账户登录显示“发生了错误”的问题
- MacBook Air M2无需虚拟屏启用Hidpi+任意缩放(22年9月)
- 测试工具jmeter清理缓存关闭java进程
- c语言编写虚拟光驱软件下载,daemon tools lite下载-DAEMON Tools Lite v10.14.0.1747 免费版 - 下载吧...