首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >vim命令总结,新手必看!

vim命令总结,新手必看!

作者头像
程序猿的栖息地
发布2022-04-29 15:56:57
发布2022-04-29 15:56:57
5890
举报

vim安装

  1. yum安装
代码语言:javascript
复制
yum -y install vim
  1. 编辑安装
代码语言:javascript
复制
wget ftp://ftp.vim.org/ftp/pub/vim/unix/vim-6.4-src2.tar.gz
tar xvf vim-6.4-src2.tar.gz
cd vim-6.4-src2
./configure --disable-selinux --enable-cscope
make
make install

配置

_vimrc配置:

代码语言:javascript
复制
"配置目录树快捷键F2启动
map <f2> :NERDTreeToggle<CR>

"配置默认目录
cd E:\phpStudy\WWW\

"配置编码
:set encoding=utf-8
:set fileencodings=ucs-bom,utf-8,cp936
:set fileencoding=gb2312
:set termencoding=utf-8

"解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

"解决consle提示信息输出乱码
language messages zh_CN.utf-8

"字体设置
:set guifont=Source_Code_Pro:h12:cANSI:qDRAFT
colo evening

"自动补全
autocmd InsertEnter * let save_cwd = getcwd() | set autochdir
autocmd InsertLeave * set noautochdir | execute 'cd' fnameescape(save_cwd)
set omnifunc=syntaxcomplete#Complete

"tab缩进4个空格
set smartindent  
set tabstop=4  
set shiftwidth=4  
set expandtab  
set softtabstop=4

" 禁止保存后产生.un~文件
set noundofile
set nobackup
set noswapfile

模式切换

代码语言:javascript
复制
正常模式:可以使用快捷键命令,或按:输入命令行。
插入模式:在正常模式下,按i、a、o等都可以进入插入模式。
可视模式:正常模式下按v可以进入可视模式, 在可视模式下,移动光标可以选择文本。总是整行整行的选中。ctrl+v进入可视块模式。
替换模式:正常模式下,按R进入。

文档操作

代码语言:javascript
复制
:e file             关闭当前编辑的文件,并开启新的文件。如果对当前文件的修改未保存,vi会警告。
:e! file            放弃对当前文件的修改,编辑新的文件。
:e+file             开始新的文件,并从文件尾开始编辑。
:e+n file           开始新的文件,并从第n行开始编辑。
:enew               编译一个未命名的新文档。(CTRL-W n)
:e                  重新加载当前文档。
:e!                 重新加载当前文档,并丢弃已做的改动。
:e#或ctrl+^         回到刚才编辑的文件,很实用。
:f或ctrl+g          显示文档名,是否修改,和光标位置。
:f filename         改变编辑的文件名,这时再保存相当于另存为。
gf                  打开以光标所在字符串为文件名的文件。
:w                  保存修改。
:n1,n2w filename    选择性保存从某n1行到另n2行的内容。
:wq                 保存并退出。
ZZ                  保存并退出。
:x                  保存并退出。
:q[uit]             退出当前窗口。(CTRL-W q或CTRL-W CTRL-Q)
:saveas newfilename 另存为

光标控制

代码语言:javascript
复制
k            向上移一行
j            向下移一行
h            向左移一个字符
l            向右移一个字符
gg           移到文件的首行
G            移到文件的末行
H            移到屏幕的第一行
w            移到下一个字的开头
W            移到下一个字的开头,忽略标点符号
e            移到下一个字的结尾
E            移到下一个字的结尾,忽略标点符号
^            移到当前行首
$            移到当前行尾
{            移到上一段开头
}            移到上一段结尾
Enter        移到下一行行首

翻屏

代码语言:javascript
复制
ctrl+f:     下翻一屏。
ctrl+b:     上翻一屏。
ctrl+d:     下翻半屏。
ctrl+u:     上翻半屏。
ctrl+e:     向下滚动一行。
ctrl+y:     向上滚动一行。
n%:         到文件n%的位置。
zz:         将当前行移动到屏幕中央。
zt:         将当前行移动到屏幕顶端。
zb:         将当前行移动到屏幕底端。

添加文本

代码语言:javascript
复制
i            在光标前插入文本
I            在当前行首插入文本
a            在光标后插入文本
A            在当前行末插入文本
o            在当前行的下边插入新行
O            在当前行的上边插入新行
s            删除光标所在处字符,并进入插入模式
S            删除光标所在的行,并进入插入模式
:r filename  读入指定文件内容,并插在当前行后
:nr file     读入文件 file 内容,并插在第 n 行后
Esc          回到命令模式

删除文本

代码语言:javascript
复制
x            删除光标处的字符
db           删除光标前面的字
dw           删至下一个字的开头
dd           删除整行
:n,md        从第 m 行开始往前删除 n 行
d$           从光标处删除到行尾
d^           从光标处删除到行首

查找

代码语言:javascript
复制
/something:         在后面的文本中查找something。
?something:         在前面的文本中查找something。
/pattern/+number:   将光标停在包含pattern的行后面第number行上。
/pattern/-number:   将光标停在包含pattern的行前面第number行上。
n:                  向后查找下一个。
N:                  向前查找下一个。
:noh                清除查找后的高亮

替换

代码语言:javascript
复制
:s/old/new          用new替换当前行第一个old。
:s/old/new/g        用new替换当前行所有的old。
:n1,n2s/old/new/g   用new替换文件n1行到n2行所有的old。
:%s/old/new/g       用new替换文件中所有的old。
:%s/^/xxx/g         在每一行的行首插入xxx,^表示行首。
:%s/$/xxx/g         在每一行的行尾插入xxx,$表示行尾。
%s/old/new/c        每个替换都将需要用户确认。
%s/old/new/i        每个替换忽略大小写
:set ff=unix  
:%s/\\r\\+$//e   doc文档转换成unix格式
:set fileencoding=utf-8 设置文件编码

复制

代码语言:javascript
复制
y:          复制在可视模式下选中的文本。
yy or Y:    复制整行文本。
y[n]w:      复制一(n)个词。
y[n]l:      复制光标右边1(n)个字符。
y[n]h:      复制光标左边1(n)个字符。
y$:         从光标当前位置复制到行尾。
y0:         从光标当前位置复制到行首。
:m,ny<cr>   复制m行到n行的内容。
y1G或ygg:   复制光标以上的所有行。
yG:         复制光标以下的所有行。
yaw和yas:复制一个词和复制一个句子,即使光标不在词首和句首也没关系。

剪切

代码语言:javascript
复制
[n]x:       剪切光标右边n个字符,相当于d[n]l。
[n]X:       剪切光标左边n个字符,相当于d[n]h。
d:          删除(剪切)在可视模式下选中的文本。
d$ or D:    删除(剪切)当前位置到行尾的内容。
d[n]w:      删除(剪切)1(n)个单词
d[n]l:      删除(剪切)光标右边1(n)个字符。
d[n]h:      删除(剪切)光标左边1(n)个字符。
d0:         删除(剪切)当前位置到行首的内容
[n] dd:     删除(剪切)1(n)行。
:m,nd<cr>   剪切m行到n行的内容。
:1,10 m 12  剪切1-10行并粘贴到12行里面
d1G或dgg:   剪切光标以上的所有行。
dG:         剪切光标以下的所有行。
daw和das:剪切一个词和剪切一个句子,即使光标不在词首和句首也没关系。
d/f<cr>:将删除当前位置 到下一个f之间的内容。

粘贴

代码语言:javascript
复制
p:          在光标之后粘贴。
P:          在光标之前粘贴。
u           撤消上一次修改
U           撤消所有修改

保存退出

代码语言:javascript
复制
:w                   保存文件但不退出
:w file              将修改保存在 file 中但不退出
:wq 或 ZZ 或 :x      保存文件并退出
:q!                  不保存文件,强制退出
:e!                  放弃所有修改,从上次保存文件开始再编辑

标签管理

代码语言:javascript
复制
:tabnew [++opt选项] [+cmd] 文件   建立对指定文件新的tab
:tabc       关闭当前的tab
:tabo       关闭所有其他的tab
:tabs       查看所有打开的tab
:tabp       前一个
:tabn       后一个
标准模式下:
gt , gT 可以直接在tab之间切换。
更多可以查看帮助 :help table , help -p

排版

代码语言:javascript
复制
:3,231>   第3行到第231行缩进

其他操作

代码语言:javascript
复制
:set all             查看所有选项
:set nu              设置行号
:set showmode        显示是输入模式还是替换模式
:set ts=4            为文本输入设置 tab stops
:set nonumber        取消显示行数
:.=                  查看当前行的行号
:=                   查看总行数
ctrl+g               显示文件名、当前的行号、文件的总行数和文件位置的百分比
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿的栖息地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • vim安装
  • 配置
  • 模式切换
  • 文档操作
  • 光标控制
  • 翻屏
  • 添加文本
  • 删除文本
  • 查找
  • 替换
  • 复制
  • 剪切
  • 粘贴
  • 保存退出
  • 标签管理
  • 排版
  • 其他操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档