admin 管理员组文章数量: 887019
码字不易,转载请附原链,搬砖繁忙回复不及时见谅,技术交流请加QQ群:909211071
首先是vim自带的常用命令:
行号相关:
显示行号: :set number
隐藏行号: :set nonumber
修改撤销相关:
回退(相当于Ctrl+Z): u
撤销回退:ctrl+r
翻页相关:
上一页:Page Up(Win) ctrl+↑(Mac)
下一页:Page Down(Win) ctrl+↓(Mac)
光标移动相关:
行首:Home(Win) ctrl+←(Mac) (支持前加g)
行尾:Home(Win) ctrl+←(Mac) (支持前加g)
回到底部:GG
回到顶部:gg
上下左右移动:上下左右(同行之间移动前加g)
移动到光标的下一个x处:fx
往前移动一个单词:w
往后移动一个单词:b
移动光标到屏幕上面:H
移动光标到屏幕中间:M
移动光标到屏幕下面:L
nG:移动光标到第n行
:n:移动光标到第n行
跳到上一个空行:shift + (
跳到下一个空行:shift + )
查找替换相关:
查找string:/string
查找关键字下一个:n
查找关键字上一个:shift + #
空格替换成,::%s/\s\+/,/g
替换每行第一个的str1为str2:%s/str1/str2
替换所有的str1为str2:%s/str1/str2/g
tab相关:
打开新tab: :Te
tab切换:gt
:tabc 关闭当前的tab
:tabo 关闭所有其他的tab
:tabs 查看所有打开的tab
:tabp 前一个
:tabn 后一个
分屏相关:
垂直分屏: :vsplit
垂直分屏并打开新文件: :vsplit file_dir
水平分屏: :split
水平分屏并打开新文件: :split file_dir
切换打开的文件:control + 6
分屏切换下一个:control + ww
分屏切换:control + w + ↑/↓
选中和复制粘贴相关:
Ctrl+v:进入列模式,自由上下选中,按d删除
可视选择模式:v(按字符选择) V(按行选择) d:(剪贴) y:(拷贝) c:(剪贴并进入插入模式)
非可视选择模式:dd:(剪切当前行) yy:(拷贝当前行)
粘贴:p
复制6~9行到12行::6,9 co 12
全部删除:按esc后,然后dG
全部复制:按esc后,然后ggyG
全选高亮显示:按esc后,然后ggvG或者ggVG
注释相关:
添加注释:大写V选中需要注释的行, Ctrl+v进入列模式,大写I进入插入模式,输入#或//,连续按2下ESC
取消注释:大写V选中需要注释的行,Ctrl+v进入列模式,选中注释符号,d删除
折叠相关:
:set foldmethod=manual 设置手工折叠
移动到括号开始后zf%折叠到对应括号
zo打开当前折叠
zi打开所有折叠
zd删除当前折叠
zD删除所有折叠
保存折叠:mkview
加载折叠:loadview
写代码相关:
Ctrl+n:代码补全
]p:和p的功能差不多,但是它会自动调整被粘贴的文本的缩进去适应当前代码的位置
%:匹配花括号,方括号,括号等。在一个括号的上面,然后按%,鼠标就会出现在匹配的另外一半括号处
>>:缩进所有选择的代码
<<:和上面类似,但是反缩进
gd:到达光标所在处函数或者变量的定义处
:set paste 粘贴代码避免格式混乱
:Set nopaste
jobs相关:
jobs:显示当前运行的jobs
Ctrl+z:显示jobs控制台
fg %n:打开id为n的job
gd %n:关闭id为n的job
插件源码获取:
cd ~/.vim
mkdir ~/.vim/bundle
cd ~/.vim/bundle
git clone https://github/VundleVim/Vundle.vim.git
mkdir ~/.vim/colors
cd ~/.vim/colors
git clone https://github/tomasr/molokai.git
cp ~/.vim/colors/molokai/colors/molokai.vim ~/.vim/colors
vim ~/.vimrc
colorscheme molokai
"molokai设置
set t_Co=256
let g:molokai_original = 1
let g:rehash256 = 1
"代码颜色区分
syntax enable
syntax on
"tab宽度和缩进设置
set tabstop=4
set softtabstop=4
set shiftwidth=4
"兼容老版本
set nocompatible
set backspace=indent,eol,start
"自动缩紧和对齐
set autoindent
set smartindent
"开启追踪列表选择
set cscopetag
set hlsearch
"默认显示行号
set number
"自动加载和保存折叠
au BufWinLeave * silent mkview
au BufWinEnter * silent loadview
"括号和引号自动补全
"inoremap ' ''<ESC>i
"inoremap " ""<ESC>i
"inoremap ( ()<ESC>i
"inoremap [ []<ESC>i
"inoremap { {}<ESC>i
"GoLang代码提示
imap <F2> <C-x><C-o>
"开启NerdTree
map <F3> :NERDTreeMirror<CR>
map <F3> :NERDTreeToggle<CR>
"autocmd VimEnter * NERDTree
let NERDTreeWinSize=30
"文件结构显示
nmap <F4> :TagbarToggle<CR>
"let g:tagbar_autopreview = 1 "开启自动预览(随着光标在标签上的移动,顶部会出现一个实时的预览窗口
let g:tagbar_sort = 0 "关闭排序,即按标签本身在文件中的位置排序
let g:tagbar_left = 1 "默认在右边,设置在左边
let g:tagbar_width = 30 "宽度
let g:tagbar_type_go = {
\ 'ctagstype' : 'go',
\ 'kinds' : [
\ 'p:package',
\ 'i:imports:1',
\ 'c:constants',
\ 'v:variables',
\ 't:types',
\ 'n:interfaces',
\ 'w:fields',
\ 'e:embedded',
\ 'm:methods',
\ 'r:constructor',
\ 'f:functions'
\ ],
\ 'sro' : '.',
\ 'kind2scope' : {
\ 't' : 'ctype',
\ 'n' : 'ntype'
\ },
\ 'scope2kind' : {
\ 'ctype' : 't',
\ 'ntype' : 'n'
\ },
\ 'ctagsbin' : 'gotags',
\ 'ctagsargs' : '-sort -silent'
\ }
"go函数追踪 ctrl+]追踪 ctrl+o返回
autocmd FileType go nnoremap <buffer> gd :call GodefUnderCursor()<cr>
autocmd FileType go nnoremap <buffer> <C-]> :call GodefUnderCursor()<cr>
let g:godef_split=1 "追踪打开新tab
let g:godef_same_file_in_same_window=1 "函数在同一个文件中时不需要打开新窗口
"保存自动goimports
let g:go_fmt_command = "goimports"
let g:goimports = 1
"高亮
let g:go_highlight_types = 1
let g:go_highlight_fields = 1
let g:go_highlight_functions = 1
let g:go_highlight_function_calls = 1
let g:go_fmt_command="gopls"
let g:go_gopls_gofumpt=1
let g:go_metalinter_autosave = 1
let g:go_metalinter_enabled = ['vet', 'golangci-lint', 'errcheck']
let g:go_metalinter_autosave_enabled = ['vet', 'golangci-lint', 'errcheck']
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'gmarik/Vundle.vim'
Plugin 'fatih/vim-go'
Plugin 'scrooloose/nerdtree'
Plugin 'majutsushi/tagbar'
call vundle#end()
filetype plugin indent on
安装 Vim 插件
vim
:PluginInstall
代码提示:
代码提示:F2
NERDTree快捷键:
显示目录:F3(:NERDTree)
Ctrl+H+W切换到左侧目录
Ctrl+H+L切换到右侧文件
Ctrl+W+W窗口切换(相当于Ctrl+tab)
i:新开一个窗口打开一个文件
I显示隐藏文件
m显示系统菜单(添加删除移动等)
R刷新
ctags(代码追踪)安装和使用:
1、安装
brew install ctags
yum intall ctags
apt-get install ctags
2、生成对应文件
$ ctags -R
递归的为当前目录及子目录下的所有代码文件生成tags文件
3、在vim打开源码时,指定tags文件,才可正常使用,通常手动指定,在vim命令行输入:
:set tags=/usr/local/nginx/html/queen/tags
4、快捷键
Ctrl+]:追踪
Ctrl+o:返回上一位置
Vim打造成GoLang开发环境:Vim打造成GoLang开发环境_程序猿的世界-CSDN博客_vim 支持golang
版权声明:本文标题:一篇文章教你玩转vim神器写代码 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1724510945h753345.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论