win10 gvim
前言
现有的vscode太过于繁重,notepad++也不理想,顿来心思,想在win10配置一个gvim环境。
正文
安装gvim,从releases中找一个x64的.exe下载安装即可,安装完毕,把 gvim.exe 所在文件夹路径添加到系统用户变量;
安装ctags58.zip
解压后配置 ctags.exe 所在文件夹路径添加到系统用户环境变量;打开powershell,输入vim,进入到vim界面。输入":"调出vim命令行,输入:echo $MYVIMRC,可以看到打印出配置文件"_vimrc"所在路径,我的是:E:\vim_vimrc
新建插件文件夹,我把文件夹命名为 MyPlugs,为方便管理,路径放在了 E:\vim\MyPlugs
修改配置文件 _vimrc
具体可参考博客:Vim使用全指南 (环境配置,插件推荐,美化) (C++,Python,MarkDown,R...)
现在把我目前配置的 _vimrc 记录一下:
其中下载插件时,用了两个加速的网址,https://gitclone.com/github.com/
https://ghproxy.com/
即使是自己git下载到插件文件夹的插件,如果不添加下载源,也会识别不出来,因此只能在插件中都带上下载的链接
" Vim with all enhancements
source $VIMRUNTIME/vimrc_example.vim
" Use the internal diff if available.
" Otherwise use the special 'diffexpr' for Windows.
if &diffopt !~# 'internal'
set diffexpr=MyDiff()
endif
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg1 = substitute(arg1, '!', '\!', 'g')
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg2 = substitute(arg2, '!', '\!', 'g')
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let arg3 = substitute(arg3, '!', '\!', 'g')
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
if empty(&shellxquote)
let l:shxq_sav = ''
set shellxquote&
endif
let cmd = '"' . $VIMRUNTIME . '\diff"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
let cmd = substitute(cmd, '!', '\!', 'g')
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3
if exists('l:shxq_sav')
let &shellxquote=l:shxq_sav
endif
endfunction
" ------ 我的配置 ------
filetype plugin indent on " 启用根据文件类型自动缩进
set autoindent " 开始新行时处理缩进
set smartindent " 智能缩进
set expandtab " 将制表符 Tab 展开为空格
set tabstop=4 " 要计算的空格数
set shiftwidth=4 " 用于自动缩进的空格数
set backspace=indent,eol,start " 开启退格跨行退格
set backspace=2 " 在多数终端上修正退格键Backspace的行为
set nu " 开启行数显示
" set relativenumber " 显示相对行数
set wrap " 自动换行
set wildmenu " 输入命令的时候Tab显示提示
set mouse=a " 启用鼠标
set nobackup " 备份与缓存
set hlsearch " 开启高亮显示结果
exec "nohlsearch"
set incsearch " 显示查找匹配过程
set cursorline "高亮显示当前
set smartcase
set showmatch " 高亮显示匹配的括号
filetype indent on " 针对不同的文件类型采用不同的缩进格式
filetype plugin on " 针对不同的文件类型加载对应的插件
filetype plugin indent on
filetype on
set autoread " 当文件在外部被修改,自动更新该文件
set clipboard+=unnamed " Vim 的默认寄存器和系统剪贴板共享
" 在3种模式下用3种光标
let &t_SI = "\<Esc>]50;CursorShape=1\x7"
let &t_SR = "\<Esc>]50;CursorShape=2\x7"
let &t_EI = "\<Esc>]50;CursorShape=0\x7"
" --- gui ---
syntax enable
syntax on " 支持语法高亮显示
set showtabline=2 " 总是显示标签栏
set showcmd " 状态栏显示目前所执行的指令
set laststatus=2 " 开启状态栏信息
set cmdheight=1 " 命令行的高度
" colorscheme murphy " 修改配色
set guifont=Consolas:h12 " 设置字体
"不显示工具/菜单栏
set guioptions-=T "工具栏
"set guioptions-=m "菜单栏
set guioptions-=L "左边滚动条
set guioptions-=r "右边滚动条
set guioptions-=b " 底部滚动条
set guioptions-=e " 使用内置 tab 样式而不是 gui
" --- gui ---
" --- 编码配置 ---
set encoding=utf-8
set fileencodings=utf-8,cp936,gb2123
if has("win32")
set fileencoding=utf-8
else
set fileencoding=utf-8
endif
source $VIMRUNTIME/delmenu.vim "解决菜单乱码
source $VIMRUNTIME/menu.vim
language messages zh_CN.utf-8 "解决consle输出乱码
" --- 编码配置 ---
" --- 环境配置 ---
let &pythonthreedll='C:\Python3\python38.dll'
let &pythonthreehome='C:\Python3'
" --- 环境配置 ---
" ------ 我的配置 ------
" ------ 插件 ------
call plug#begin('E:\vim\MyPlugs')
Plug 'https://gitclone.com/github.com/scrooloose/nerdcommenter' "注释
Plug 'https://ghproxy.com/https://github.com/clouduan/vim-searchme'
Plug 'https://gitclone.com/github.com/jiangmiao/auto-pairs'
Plug 'https://gitclone.com/github.com/junegunn/vim-easy-align' "对齐
Plug 'https://gitclone.com/github.com/iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() } } "markdownpreview
Plug 'https://gitclone.com/github.com/preservim/nerdtree' "目录树
Plug 'https://gitclone.com/github.com/majutsushi/tagbar' "标签侧边栏
Plug 'https://ghproxy.com/https://github.com/neoclide/coc.nvim', {'branch': 'release'} "补全
Plug 'https://ghproxy.com/https://github.com/vim-airline/vim-airline'
Plug 'https://ghproxy.com/https://github.com/vim-airline/vim-airline-themes'
Plug 'https://gitclone.com/github.com/joshdick/onedark.vim' " onedark主题
Plug 'https://gitclone.com/github.com/ervandew/supertab' "Tab插件
Plug 'https://gitclone.com/github.com/dense-analysis/ale' " 多语言代码查错
Plug 'https://ghproxy.com/https://github.com/luochen1990/rainbow' " 彩虹花括号
call plug#end()
" ------ 插件 ------
" ------ 插件配置 ------
" let g:plugged#enable_at_startup = 1
" --- nerdtree 目录树快捷键 ---
map <C-n> :NERDTreeToggle<CR> " Ctrl+n快速开启目录树
" --- nerdtree 目录树快捷键 ---
" --- auto-pairs 自动补括号 ---
au Filetype FILETYPE let b:AutoPairs = {"(": ")"}
au FileType php let b:AutoPairs = AutoPairsDefine({'<?' : '?>', '<?php': '?>'})
" --- auto-pairs 自动补括号 ---
" --- nerdcommenter 配置 ---
" Add spaces after comment delimiters by default
let g:NERDSpaceDelims=1
" Use compact syntax for prettified multi-line comments
let g:NERDCompactSexyComs=1
" Align line-wise comment delimiters flush left instead of following code indentation
let g:NERDDefaultAlign='left'
" Set a language to use its alternate delimiters by default
let g:NERDAltDelims_java=1
" Add your own custom formats or override the defaults
let g:NERDCustomDelimiters={'c':{'left':'/**','right':'*/'}}
" Allow cddommenting and inverting empty lines (useful when commenting a region)
let g:NERDCommentEmptyLines=1
" Enable trimming of trailing whitespace when uncommenting
let g:NERDTrimTrailingWhitespace=1
" Enable NERDCommenterToggle to check all selected lines is commented or not
let g:NERDToggleCheckAllLines=1
map <C-m> <leader>cc
map <A-m> <leader>cu
unmap <CR>
" --- nerdcommenter 配置 ---
" --- 标签侧边栏 ---
nmap <F8> :TagbarToggle<CR>
" --- 标签侧边栏 ---
colorscheme onedark " 修改配色
" --- vim-airline-themes ---
"set ambiwidth=double " 设置为双字宽显示,否则无法完整显示如:☆
let g:airline_powerline_fonts = 1 "关于状态栏的配置
" 缺省自动匹配主题
let g:airline_theme='onedark'
let g:airline#extensions#tabline#enabled = 1 " Air-line 显示上面的buffer tab
let g:airline#extensions#ale#enabled = 1
let g:airline#extensions#coc#enabled = 1 "coc
let g:airline#extensions#tabline#left_sep = ' ' "tabline中未激活buffer两端的分隔字符
let g:airline#extensions#tabline#left_alt_sep = '|' "tabline中buffer显示编号
let g:airline#extensions#tabline#buffer_nr_show = 1
" --- vim-airline-themes ---
" --- ale ---
"始终开启标志列
let g:ale_sign_column_always = 1
let g:ale_set_highlights = 0
"自定义error和warning图标
let g:ale_sign_error = ''
let g:ale_sign_warning = ''
"在vim自带的状态栏中整合ale
let g:ale_statusline_format = ['✗ %d', ' %d', ' OK']
"显示Linter名称,出错或警告等相关信息
let g:ale_echo_msg_error_str = 'E'
let g:ale_echo_msg_warning_str = 'W'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
"普通模式下,sp前往上一个错误或警告,sn前往下一个错误或警告
nmap sp <Plug>(ale_previous_wrap)
nmap sn <Plug>(ale_next_wrap)
"<Leader>s触发/关闭语法检查
nmap <Leader>s :ALEToggle<CR>
"<Leader>d查看错误或警告的详细信息
nmap <Leader>d :ALEDetail<CR>
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}\ %{ALEGetStatusLine()}
"cpp NOT C++
let g:ale_linters = {
\ 'cpp': ['gcc'],
\ 'c': ['gcc'],
\ 'python': ['pylint'],
\}
" --- ale ---
" --- rainbow ---
" 1. vscode defult 2. author defult 3. vscode show
" \ 'guifgs': ['#B21212', '#1B9CED','#FFFC00'],
" \ 'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick'],
" \ 'guifgs': ['#C186BF', '#268EDB','#F79318'],
let g:rainbow_conf = {
\ 'guifgs': ['#C186BF', '#268EDB','#F79318'],
\ 'ctermfgs': ['lightblue', 'lightyellow', 'lightcyan', 'lightmagenta'],
\ 'operators': '_,_',
\ 'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold'],
\ 'separately': {
\ '*': {},
\ 'tex': {
\ 'parentheses': ['start=/(/ end=/)/', 'start=/\[/ end=/\]/'],
\ },
\ 'lisp': {
\ 'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick', 'darkorchid3'],
\ },
\ 'vim': {
\ 'parentheses': ['start=/(/ end=/)/', 'start=/\[/ end=/\]/', 'start=/{/ end=/}/ fold', 'start=/(/ end=/)/ containedin=vimFuncBody', 'start=/\[/ end=/\]/ containedin=vimFuncBody', 'start=/{/ end=/}/ fold containedin=vimFuncBody'],
\ },
\ 'html': {
\ 'parentheses': ['start=/\v\<((area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)[ >])@!\z([-_:a-zA-Z0-9]+)(\s+[-_:a-zA-Z0-9]+(\=("[^"]*"|'."'".'[^'."'".']*'."'".'|[^ '."'".'"><=`]*))?)*\>/ end=#</\z1># fold'],
\ },
\ 'css': 0,
\ }
\}
let g:rainbow_active = 1
" --- rainbow ---
" ------ 插件配置 ------
此外,如果想要配置git加速,可以修改 C:\Users\用户名.gitconfig,添加:
[url "https://gitclone.com/github.com/"]
insteadOf = https://github.com/
;[url "https://ghproxy.com/https://github.com/"]
;insteadOf = https://github.com/
;[url "https://ghproxy.com/https://github.com/"]
;insteadOf = https://github.com/
; [url "https://ghproxy.com/https://raw.githubusercontent.com/"]
; insteadOf = https:///raw.githubusercontent.com/
; [url "https://github.com.cnpmjs.org/"]
; insteadOf = https://github.com/
win10 gvim的更多相关文章
- win10 右键菜单添加使用gvim打开方式
①打开注册表编辑器,开始-->运行-->regedit ②定位到:HKEY_CLASSSES_ROOT---> * --->Shell,在Shell 上右击,新建---> ...
- 关于VIM在Win10下的无意义折腾
这两天和VIM较上劲了,总结下来其实是极无意义的折腾,浪费了很多宝贵的时间! 事情是这样的,无意中发现vim在Win10的控制台窗口无参数打开时不显示那个“乌干达儿童”的界面(其实就是:intro的内 ...
- Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_160 众神殿内,依次坐着Editplus.Atom.Sublime.Vscode.JetBrains家族.Comodo等等一众编辑 ...
- win10 环境 gitbash 显示中文乱码问题处理
gitbash 是 windows 环境下非常好用的命令行终端,可以模拟一下linux下的命令如ls / mkdir 等等,如果使用过程中遇到中文显示不完整或乱码的情况,多半是因为编码问题导致的,修改 ...
- 0.Win8.1,Win10,Windows Server 2012 安装 Net Framework 3.5
后期会在博客首发更新:http://dnt.dkill.net 网站部署之~Windows Server | 本地部署:http://www.cnblogs.com/dunitian/p/482280 ...
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])
常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...
- win10上部署Hadoop-2.7.3——非Cygwin、非虚拟机
开始接触Hadoop,听人说一般都是在Lunix下部署Hadoop,但是本人Lunix不是很了解,所以Google以下如何在Win10下安装Hadoop(之后再在Lunix下弄),找到不少文章,以下是 ...
- Win10提示没有权限使用网络资源问题解决
借鉴链接:http://www.cr173.com/html/67361_1.html Win10提示没有权限使用网络资源解决方法 1.打开控制面板; 2.在所有控制面板项中找到凭据管理器; 3.添加 ...
- 使用win10远程控制ubuntu16.04
使用win10远程控制ubuntu16.04,网上很多需要安装xfce桌面的.今天介绍一下,不需要安装其他桌面,使用Ubuntu16.04自带桌面,漂亮美观. Ubuntu16.04端: 1.打开终端 ...
- win10电脑优化
Windows10必做的优化 --道心 关闭服务 右键点击"此电脑",选择"管理",进入"计算机管理"窗口. 在左侧的菜单选择"服 ...
随机推荐
- 在线自动加字幕!超快完成Pr的字幕制作!
在线自动加字幕!超快完成Pr的字幕制作! https://www.bilibili.com/video/BV1T441167eX/?spm_id_from=333.788.videocard.3 ht ...
- web页面打开直接调用vlc播放视频
简介 大家都知道现在我们在网页所播放的视频都是h264编码格式,可以供所有设备正常播放.然而,相比h265它的体积更大.质量更差.目前h265大多应用于安防,体积小可以更好的存储,不过它也有着缺点,成 ...
- vue3的reactive对象赋值后失去响应式的问题
vue3种对象类型的响应式用reactive实现. 但是reactive对象在赋值后,因为变量代理函数变了,就失去了响应式功能了.示例如下: <template> <div> ...
- Gradle常用功能拾掇
介绍 Gradle 是一个基于groovy动态语言的java项目管理工具,灵活性和速度好于java,他的build脚本完全可以以写groovy代码的方式来实现,所以灵活性很高,当然也就比maven的x ...
- iceoryx源码阅读(三)——共享内存通信(一)
目录 0 导引 1 整体通信结构 2 RelativePointer 2.1 原理 2.2 PointerRepository 2.3 构造函数 2.4 get函数 3 ShmSafeUnmanage ...
- mySql脚本转换成sqlserver脚本(主流数据库的脚本都能转换,需要使用powerdesigner)
我使用的powerdesginer版本是16.5,只需要脚本文件就可以了,不需要安装mysql和sqlserver. 文件->反向工程->Database... 选择原脚本文件的数据库类型 ...
- 【C# 序列化】System.Text.Json.Nodes ---Json数据交换格式 对应C#类
请先阅读 JSON数据交换格式 Json数据交换格式 对应C#类 System.Text.Json.Nodes:.NET 6 依微软的计划,System.Text.Json 应取代Newtonsoft ...
- 彻底搞清楚vue3的defineExpose宏函数是如何暴露方法给父组件使用
前言 众所周知,当子组件使用setup后,父组件就不能像vue2那样直接就可以访问子组件内的属性和方法.这个时候就需要在子组件内使用defineExpose宏函数来指定想要暴露出去的属性和方法.这篇文 ...
- matplotlib学习:搞明白plt. /ax./ fig
原文章一:https://zhuanlan.zhihu.com/p/93423829,原文章二:https://jishuin.proginn.com/p/763bfbd23e20 感谢作者的讲 ...
- linux ssh key 登录
vim /etc/ssh/sshd_config #禁用root账户登录,非必要,但为了安全性,请配置 PermitRootLogin no # 是否让 sshd 去检查用户家目录或相关档案的权限数据 ...