admin 管理员组

文章数量: 887016

        这里是在vim帮助文件以及网络上搜集的一些vim基本命令.也许你需要的不是vim的整个帮助文件,而只是需它的一个小子集就够了.需要的同学复制粘贴.

vim/gvim 基本命令
1 多文件操作  2 模式切换与保存退出  3 gvim默认启动配置  4 翻页与光标定位  5 插入行操作  6 复制  7 撤回  8 剪切/删除  9 查找与替换

1.多文件操作

vim 文件1 文件2 文件3 ...     打开多个文件(终端vim命令)
gvim+文件名  新建一个文件
tabnew   在新标签页新建一个文件(gvim)
gvim:       使用菜单可在新标签页打开多个文件
                (多标签页,是一个文件占一个标签页和终端vim打开多文件不一样)
n              下一个文件  
bn            下一个文件 
bp           上一个文件  
ctrl+6       在两个文件之间切换
gf             命令跳转进入某个文件      
ctrl+PageUp      切换上一个标签页(gvim命令)
ctrl+PageDown 切换下一个标签页(gvim命令)
ctrl+P       列模式 
大写I        进入列模式的编辑模式,esc退出后自动添加到每一行

2.模式切换与保存退出

i 或 a    从普通模式进入插入模式
esc       退出插入模式回到普通模式
ctrl+C   退出插入模式回到普通模式
ctrl+[    退出插入模式回到普通模式
:           从普通模式切换到命令模式            
w         保存       
q          退出
wq       保存后退出
q!         强制退出
wa       保存全部文件
wqa     保存全部文件然后退出
qa       全部文件退出
qa!      全部文件退出但不保存操作

3.gvim默认启动配置

"在vim安装文件夹下(如C:\Program Files\Vim)打开"_vimrc"
"文件(若没有就新建一个),将以下设置命令添加到末尾即可

syntax enable            "语法开启
syntax on                   "语法高亮
colorscheme darkblue      "设置主题为darkblue
set guifont=Consolas:h18 "设置字体为Consolas,大小为18
set number                "显示行号
set autoindent           "自动缩进
set expandtab           "用制表符缩进
set noexpandtab       "用空格缩进
set tabstop=4            "一个tab键4个空格
set shiftwidth=4         "缩进宽度
set showmatch          "显示括号配对
set confirm                "启用提示
set vb t_vb=              "关闭响铃提示
au GuiEnter * set t_vb=  "关闭闪屏提示
au GUIEnter * simalt ~x  "窗口全屏
set autoread              "自动刷新文件内容
set cursorline            "高亮当前行
"标题栏设置:文件名、标记、程序名、操作系统
set titlestring=%f%h%m%r%w-%{v:progname}-%{$OS}
set nobackup             "不生成备份文件 注:建议不打开
set noundofile            "不生成.filename.un~ 文件
set noswapfile            "不生成.filename.swp文件

"设置在插入模式下移动光标快捷键
"注:<C-a> <Left>表示用快捷键ctrl+a往左移动
"注:使用ctrl+r减少缩进(替换系统原有的ctrl+d)

inoremap <C-r> <C-d>  
inoremap <C-a> <Left>
inoremap <C-s> <Down>
inoremap <C-d> <Up>
inoremap <C-f> <Right>
inoremap <C-V> <PageDown>   
inoremap <C-B> <PageUp>

"Hide/Show Menu and Toolbar using F2
set guioptions-=m
set guioptions-=T
map <silent> <F2> :if &guioptions =~# 'T' <Bar>
        \set guioptions-=T <Bar>
        \set guioptions-=m <bar>
    \else <Bar>
        \set guioptions+=T <Bar>
        \set guioptions+=m <Bar>
    \endif<CR>
    
"使用NetrwTreeListing显示目录列表/NERDtree like setup
let g:netrw_banner = 0     "Removing the banner
let g:netrw_liststyle = 3    "view types, there are four different view types: thin, long, wide and tree.
let g:netrw_browse_split = 4  "1 - open files in a new horizontal split /2-vertical/3-tab/4-previous window
let g:netrw_altv = 1
let g:netrw_winsize = 20   "Set the width of the directory explorer  20%
augroup ProjectDrawer
  autocmd!
  autocmd VimEnter * :Vexplore   "Explore/Sexplore(水平目录)/Vexplore(垂直目录)
augroup END

4.翻页与光标定位

###插入模式###
注:以下Shift、Ctrl 缩写为S和C
Left Down Up Right 就是键盘最常用的那个上下左右

<Up>                      光标上移一行                                 
<Down>                  光标下移一行                                
CTRL-G <Up>        光标上移一行,到插入开始时所在的列           
CTRL-G k               光标上移一行,到插入开始时所在的列            
CTRL-G CTRL-K   光标上移一行,到插入开始时所在的列            
CTRL-G <Down>   光标下移一行,到插入开始时所在的列            
CTRL-G j                光标下移一行,到插入开始时所在的列            
CTRL-G CTRL-J    光标下移一行,到插入开始时所在的列            
<Left>                光标左移一个字符                              
<Right>             光标右移一个字符                              
<S-Left>            光标反向一个单词 (类同 "b" 命令)              
<C-Left>            光标反向一个单词 (类同 "b" 命令)              
<S-Right>          光标正向一个单词 (类同 "w" 命令)              
<C-Right>          光标正向一个单词 (类同 "w" 命令)              
<Home>             光标移到该行首个字符                          
<End>                光标移到该行末个字符之后                      
<C-Home>         光标移到该文件首个字符                        
<C-End>            光标移到该文件末个字符之后                    
<LeftMouse>     光标移动鼠标点击处                            
<S-Up>             上翻窗口一页                                  
<PageUp>        上翻窗口一页                                  
<S-Down>        下翻窗口一页                                  
<PageDown>   下翻窗口一页
CTRL-T             在当前行开始处插入一个 shiftwidth 的缩进。缩进总是取整到
                          'shiftwidth' 的倍数 (这是 vi 兼容的)。                                                 
CTRL-D             在当前行开始处删除一个 shiftwidth 的缩进。缩进总是取整到
                          'shiftwidth' 的倍数 (这是 vi 兼容的)。

###普通模式###
PageDown  下一页
PageUp       上一页
ctrl+f            下一页
ctrl+b           上一页 
ctrl+d           下半页
ctrl+u          上半页
ctrl+e          下一行
ctrl+y          上一行
H J K L       左 下 上 右
w:            跳转到下一个单词      
b:             跳转到上一个单词
0                跳转到行首
$                跳转到行尾
gg:          跳转到文件首
G               跳转到文件末
n+gg          跳转到指定行n
n+G           跳转到指定行n
Ctrl+ww     依次向后切换到下一个窗格中

5.插入行操作

o         然后按esc或ctrl+c或ctrl+[,
           在当前行的下方插入一个新的空行     
n+o     (第一种n+o)然后按esc或ctrl+c或ctrl+[,
           在下方插入n行空行
n+o     (第二种n+o)进入插入(粘贴)模式,输入需要插入的重复内容块
           (内容块可单行可多行),
           然后:
           a.若按esc或ctrl+[,将插入n个重复内容块
           b.若按ctrl+c,则只插入1个重复内容块
O        同小o一样,只是在上方    
n+O    (第一种n+O)同小o一样,只是在上方
n+O    (第二种n+O)同小o一样,只是在上方

6.复制

ctrl+q :进入块编辑模式(操作复制/粘贴) 
y:        复制 
p:        粘贴在光标后
P:          粘贴在光标前
yiw        复制当前单词  
yy:      复制一行    
yj:       复制当前行和下一行    
yw:     复制一个单词
y0:     复制从光标到行首的文字     
y$:     复制从光标到行尾的文字     

7.撤回 

u:    撤回,复原上一个操作
ctrl+r 重做
.        重复上一个操作

8.剪切/删除

注:删除就是剪切
ctrl+q :进入块编辑模式(操作删除/剪切) 
dd:      删除/剪切一行    
n+dd     删除/切剪n行
dj:       删除/剪切当前行和下一行
x            删除/剪切光标所在字符
X           删除/剪切光标所在前字符
diw        删除/剪切当前单词
dw         删除/剪切到下一个单词开头
de         删除/剪切到本单词末尾
dE         删除/剪切到本单词末尾包括标点在内
db         删除/剪切到前一个单词
dB         删除/剪切到前一个单词包括标点在内
d0         删除/剪切到行首
d$         删除/剪切到行尾  

9. 查找与替换

查找:
/关键字        查找关键字
n                 下一个关键字
N                上一个关键字
Esc+u         查找后取消高亮
noh             查找后取消高亮
nohlsearch  查找后取消高亮

替换:
{作用范围}s/{目标}/{替换}/{替换标志}

%s/要被替换的字符串/新字符串/g
s表示替换操作,%表示全局,g表示所有出现都会被替换

:s/要被替换的字符串/新字符串/g
当前行替换

:%s/要被替换的字符串/新字符串/g
全文替换

%s/要被替换的字符串/新字符串
局部替换

%s/要被替换的字符串/新字符串/gc
gc逐个询问确认替换

10,20s/要被替换的字符串/新字符串/g
只在第10~20行替换

%s/要被替换的字符串/新字符串
空替换标志,只替换从光标位置开始,目标的第一次出现

%s/要被替换的字符串/新字符串/i
i表示大小写不敏感替换

%s/要被替换的字符串/新字符串/I
i表示大小写敏感替换

        总结: vim/gvim功能强大,是代码编辑的好帮手,而正因为功能强大所以对一般人来说用不完它所有的功能.所以本文列出的命令及配置设置只是个人要用的,当然也不全面.其它还有很多你可能用到这里没有的需要自己在网络上搜集或者查看官方帮助文件,愿这里的命令和配置对你有帮助.喜欢就点赞收藏,复制粘贴.

本文标签: 命令 vim