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必做的优化 --道心 关闭服务 右键点击"此电脑",选择"管理",进入"计算机管理"窗口. 在左侧的菜单选择"服 ...
随机推荐
- google账户配置foxmail和使用foxmail
最近想把邮件分门别类,创建一些个人文件夹,更好的筛选邮件,可以尝试使用foxmail 1. 如果你有google账户,在配置foxmail之前需打开google账户的安全设置 https://myac ...
- JavaScript 数组常用方法整理
数组变异方法 push() 数组末尾添加一个项目,返回新数组长度,arr.push(item)pop() 数组末尾删除一个元素,返回被删除元素,arr.pop()shift() 删除数组开头第1个元素 ...
- call failed:, {"errMsg": "canvasToTempFilePath:fail invalid viewId"}苹果设备保存离屏 canvas 问题
call failed:, {"errMsg": "canvasToTempFilePath:fail invalid viewId"}苹果设备保存离屏 can ...
- 记一次U8的插件开发
在u8上开发一个winform的插件用来实现不同账套之间的单据协同,使用的方法是用存储过程走数据库.因为原账套的数据量会很大,如果直接在插件上用单线程传输,那肯定会造成传输过程,u8卡死的.一种方法是 ...
- ISCC 2024 练武题 misc趣题记录
Number_is_the_key 题目 The answers to the questions are hidden in the numbers. 文件是空白的xlsx文件 我的解答: 乱点发现 ...
- go 基数排序
package main import ( "fmt" ) func SelectSortMax(arr []int) int { arrLen := len(arr) if ar ...
- ReplayKit 启动录制按钮 RPSystemBroadcastPickerView 的使用
一.RPSystemBroadcastPickerView 介绍 ReplayKit12自从iOS11公布以来,提供了iOS系统级别的录屏能力(也就是录制自身App以外,手机屏幕内容)的能力,有一个非 ...
- ReplayKit2 采集音视频回调格式分析
一.iOS中的音视频都是采用一个叫做CMSampleBuffer的格式封装的 比如回调的App音频 Printing description of sampleBuffer: CMSampleBuff ...
- 鸿蒙HarmonyOS实战-ArkTS语言基础类库(XML)
前言 数据传输的数据格式有以下几种常见的格式: JSON(JavaScript Object Notation):JSON是一种轻量级的数据交换格式,可读性高且易于解析.它使用键值对的方式表示数据,并 ...
- 使用Wesky.Net.Opentools库,一行代码实现自动解析实体类summary注释信息(可用于数据实体文档的快速实现)
使用前,需要对你的项目勾选输出api文档文件. 引用Wesky.Net.OpenTools包,保持1.0.11版本或以上. 为了方便,我直接在昨天的演示基础上,继续给实体类添加注释. 昨天的演示文 ...