第二个项目开始了.发一下我的VIM配置,各种插件,各种补全

2024-06-19 06:38

本文主要是介绍第二个项目开始了.发一下我的VIM配置,各种插件,各种补全,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

set diffexpr=MyDiff()
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 arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

if has("gui_running")
"设置编码格式&帮助语言
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set helplang=cn,en

"解决菜单乱码
set langmenu=chinese
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
endif

"字体设置
set guifont=Dejavu_Sans_Mono:h14:cANSI
"set gfn=YaHei\ Consolas\ Hybrid:h10
"set gfn=YaHei\ Consolas\ Hybrid:h11
"set guifontwide=YaHei\ Consolas\ Hybrid:h11
" set guifont=Courier_New:h11
" set guifontwide=YaHei\ Consolas\ Hybrid:h11

"if has("win32")
"set guifont=Courier_New:h12:cANSI
"set guifontwide=YouYuan:h12:cGB2312
"au GUIEnter * simalt ~x
"elseif has("mac") || has("macunix")
" set guifont=Courier:h14
" set guifontwide=Hei_Regular:h14
" colorscheme tabula
"else
" set guifont=
" set guifontwide=
"endif

"设置窗口的起始位置和大小
winpos 300 200
"winpos 250 200
"set lines=22
set lines=30
set columns=100
"gvim启动最大化
"autocmd GUIEnter * simalt ~x

"Terminal(win下的终端)
if(has("win32") || has("win95") || has("win64") || has("win16"))
map <C-B> :!cmd <CR>
else
map <C-B> :!bash <CR>
endif

"colorscheme Murphy "配色方案
colorscheme desert
"colorscheme inkpot
"colorscheme ir_black
"colorscheme koehler
"colorscheme wombat256
"set shortmess=atI "启动的时候不显示那个援助索马里儿童的提示
"hi Comment ctermfg=DarkCyan "修改默认注释颜色
syntax on "语法高亮
filetype on "侦测文件类型
filetype plugin on "载入文件类型插件
filetype indent on "为特定文件类型载入相关缩进文件
set showmatch "高亮显示匹配的括号
set matchtime=2 "匹配括号高亮的时间(单位是十分之一秒)
set cmdheight=1 "命令行(在状态行下)的高度,默认为1,
set noexpandtab "不要用空格代替制表符
set smarttab "在行和段开始处使用制表符
set wrap "自动换行显示
set number "显示行号儿
set report=0 "通过使用: commands命令,告诉我们文件的哪一行被改变过
set viminfo+=! "保存全局变量
set iskeyword+=_,$,@,%,#,- "带有如下符号的单词不要被换行分割
set backspace=2 "使回格键(backspace)正常处理indent, eol, start等
set whichwrap+=<,>,h,l "允许backspace和光标键跨越行边界
set linespace=1 "字符间插入的像素行数目
set wildmenu "增强模式中的命令行自动完成操作
set nolinebreak "不在单词中间断行
set showcmd "在状态栏显示目前所执行的指令,未完成的指令片段亦会显示出来
set backspace=indent,eol,start "在insert模式下能用删除键进行删除
set completeopt=longest,menu "关掉智能补全时的预览窗口,这样可以防止闪屏现象
set textwidth=120 "设置最大列数,超出后自动换行
set history=400 "历史记录数
set autoread "当文件在外部被修改,自动更新该文件
set gdefault "行内替换
set clipboard+=unnamed "与windows共享剪贴板
set tabpagemax=40

"自动缩进
set autoindent " 继承前一行的缩进方式,特别适用于多行注释
set cindent " 使用C样式的缩进
set smartindent "为C程序提供自动缩进
set expandtab
set foldmethod=marker

"Tab键的宽度
set tabstop=4

"统一缩进为4
set softtabstop=4
set shiftwidth=4

"关闭备份
set nobackup
set nowritebackup
set noswapfile

"搜索忽略大小写
set ignorecase

"搜索逐字符高亮
set hlsearch
set incsearch

"设置语法折叠



set foldenable " 开始折叠

set foldmethod=syntax " 设置语法折叠
"set foldmethod=indent " 根据缩进折叠

set foldcolumn=0 " 设置折叠区域的宽度

setlocal foldlevel=1 " 设置折叠层数为

set foldclose=all " 设置为自动关闭折叠

"打开文件是默认不折叠代码
set foldlevelstart=99

"用空格键来开关折叠
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>

"设定文件浏览器目录为当前目录
set bsdir=buffer
set autochdir

"读文件时自动设定当前目录为刚读入文件所在的目录
autocmd BufReadPost * cd %:p:h

"不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide

"先尝试windows格式,再尝试unix格式,然后尝试mac格式
set fileformats=dos,unix,mac

"开启底部滚动条
"set guioptions+=b

"Set magic on
set magic

"当有错误时不发出声音
set flash
set noerrorbells
set novisualbell
set t_vb=

"使得注释换行时自动加上前导的空格和星号
set formatoptions=tcqro

"在被分割的窗口间显示空白,便于阅读
"set fillchars=vert:\ ,stl:\ ,stlnc:\

"光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3

"可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse=a
set selection=exclusive
set selectmode=mouse,key


"关掉智能补全时的预览窗口
set completeopt=longest,menu



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"快捷键map
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"设置控制键为,逗号
let mapleader = ","
let g:mapleader = ","
"noremap <space> :
",/ 注释当前行
noremap <leader>/ ^i//
inoremap <leader>w <ESC>:w<CR>
inoremap <leader>q <ESC>:q<CR>
noremap <leader>w :w<CR>
noremap <leader>q :q<CR>
"按jj保存退出编辑模式"
inoremap jj <ESC>:w<CR>
cnoremap jj <ESC>
"Alt+h,j,k,l 不退出编辑模式移动光标
inoremap <A-h> <Left>
inoremap <A-j> <Down>
inoremap <A-k> <Up>
inoremap <A-l> <Right>

"打开tlist"
noremap <leader>t :TlistToggle<CR>
"切换tlist与输入界面
noremap <leader>w <C-w>w

"切换到下一个标签页
noremap <leader>n :tabnext<CR>
"切换上一个标签页"
noremap <leader>b :tabprev<CR>
"打开文件在显示页显示"
noremap <leader>o :browse tabnew<CR>


"tab键缩进



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"php代码补全
"""""""""""""""""""""""""""""""""""""""""""""""""
au FileType php call PHPFuncList()
function PHPFuncList()
set dictionary-=$VIM/vimfiles/doc/php_funclist.txt
set dictionary+=$VIM/vimfiles/doc/php_funclist.txt
set complete-=k complete+=k
endfunction

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"标签
":tabnew 新建标签页
":tabs 显示已打开标签页的列表
":tabc 关闭当前标签页
":tabn 移动到下一个标签页
":tabp 移动到上一个标签页
":tabfirst 移动到第一个标签页
":tablast 移动到最后一个标签页
":tabm 1 移动标签到指定位置 从0开始计
":tabr 切换到第一个标签
":tabl 切换到最后一个标签
":tabo 关闭所有其他的tab
set showtabline=2 "始终显示标签页
set tabpagemax=15 "最大显示数
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""




" NERDTree的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
",m快捷键
noremap <leader>m :NERDTreeToggle<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"始终显示菜单
"let NERDTreeChDirMode=2
" 如果用t T i 打开文件后自动退出NERDTree,
let NERDTreeQuitOnOpen = 1
let NERDTreeHighlightCursorline=1 "高亮NERDTrre窗口的当前行
let NERDTreeSortOrder=['//$','/.cpp$','/.c$','/.h$', '*'] "排序
" 总是显示Bookmark
let NERDTreeShowBookmarks = 1
" 总是显示行号
"let NERDTreeShowLineNumbers=1
" NERDTree 窗口大小
let NERDTreeWinSize = 20
" A 可使NERDTree窗口最大化Toggle it.
"过滤文件,使用正则表达式
let NERDTreeIgnore=['\.pdf$','\.doc','\.wmv','\.flv']
let NERDTreeShowHidden=0 "不显示隐藏文件(好像只在linux环境中有效)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"状态栏显示"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set laststatus=2 " always show the status line
set wildmenu
set wildmode=list:longest,full
" ignore these list file extensions
set wildignore=*.dll,*.o,*.obj,*.exe,*.pyc,\*.jpg,*.gif,*.png,*.pdf

"我的状态行显示的内容(包括文件类型和解码)
"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
"状态栏设置:文件路径、文件名、标记、文件类型、字符编码、文件格式、当前位置、当前字符位置、文件总行数、日期、星期
set statusline=%F\ %h%1*%m%r%w%0*[%{strlen(&filetype)?&filetype:'none'},%{&encoding},%{&fileformat}]%=%-14.(%l,%c%V%)\ %<%p%%\ \ \ [%L]\ \ \ %{strftime('%Y-%m-%d\ -\ %H:%M\ %A')}


"在编辑过程中,在右下角显示光标位置的状态行
set ruler
set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)

"高亮鼠标位置
if has("gui_running")
"cursorline highlight(高亮当前行)
set cursorline
hi CursorLine guibg=#666666
hi CursorColumn guibg=#333333
"cursorcolumn highlight(高亮当前列)
"set cursorcolumn
"highlight CursorLine cterm=none ctermbg=2 ctermfg=0
endif

"进入插入模式时改变状态栏颜色(仅限于Vim 7)

if version >= 700
au InsertEnter * hi StatusLine guibg=#818D29 guifg=#FCFCFC gui=none
au InsertLeave * hi StatusLine guibg=#EEEEEE guifg=#363636 gui=none
endif





"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"F2 显示菜单栏,默认不显示,
"Toggle Menu and Toolbar
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
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>


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"打开窗口最大化
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has('win32')
au GUIEnter * simalt ~x
else
au GUIEnter * call MaximizeWindow()
endif

function! MaximizeWindow()
silent !wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
endfunction


"================================tlist
set tags=tags;
set autochdir

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 按照名称排序
let Tlist_Sort_Type = "name"
" 在右侧显示窗口
let Tlist_Use_Right_Window = 1
" 压缩方式 Remove extra information and blank lines from the taglist window.
let Tlist_Compact_Format = 1
" 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_Exit_OnlyWindow = 1
"auto open Tlist when vim open
let Tlist_Auto_Open = 0
" 不要显示折叠树
let Tlist_Enable_Fold_Column = 0
" taglist 窗口宽度
let Tlist_WinWidth = 22
" no inc the width of the windows
let Tlist_Inc_Winwidth = 1
" Close tag folds for inactive buffers.
let Tlist_File_Fold_Auto_Close = 1
"To process files even when the taglist window is not open.
let Tlist_Process_File_Always = 1
"display the tags defined only in the current buffer
let Tlist_Show_One_File = 1


要用的同学把VIM解压,覆盖你的vim目录下的同名文件, 看一下vimrc配置文件中的快捷键部分, 学点快捷键,不习惯的可以改成自己的
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"快捷键map
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

jj 返回命令模式
Alt + h 光标左移
Alt + l 光标右移

,/ 注释当前行
,w 保存
,q 退出
,m 打开nerdtree 菜单
,t 打开tlist菜单
,w "切换tlist与输入界面
,o 打开新文件
,n "切换到下一个标签页
,b "切换上一个标签页"

<F2> 显示菜单栏

原文地址:http://bbs.lampbrother.net/read-htm-tid-121652.html

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(64) | 评论(0) | 转发(0) |
0

上一篇:PHP常用正则表达式汇总

下一篇:一个人,如果你不逼自己一把,你根本不知道自己有多优秀

相关热门文章
  • 新浪微博,请让信息在关系链中...
  • 怎样在网上卖东西?
  • qpid service 的root引发的权...
  • 系统移植与驱动开发小问题及解...
  • 美国RT服务器租用仿牌网站不二...
  • IP Sec VPN与NAT破镜重圆
  • 网站导航
  • GoAgent图文设置教程
  • UT2.0正式版下载
  • tomcat6.0配置(含配置视频下载...
  • 大家都是用什么来管理hadoop集...
  • 网站被人挂了吗,添加了些程序...
  • Nginx如何保证不走宕机的那个...
  • 大家谈谈MYSQL客户端和服务器...
  • 以下代码运行后为何会输出5?...
给主人留下些什么吧!~~
评论热议

这篇关于第二个项目开始了.发一下我的VIM配置,各种插件,各种补全的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1074277

相关文章

Debian系和Redhat系防火墙配置方式

《Debian系和Redhat系防火墙配置方式》文章对比了Debian系UFW和Redhat系Firewalld防火墙的安装、启用禁用、端口管理、规则查看及注意事项,强调SSH端口需开放、规则持久化,... 目录Debian系UFW防火墙1. 安装2. 启用与禁用3. 基本命令4. 注意事项5. 示例配置R

PyCharm中配置PyQt的实现步骤

《PyCharm中配置PyQt的实现步骤》PyCharm是JetBrains推出的一款强大的PythonIDE,结合PyQt可以进行pythion高效开发桌面GUI应用程序,本文就来介绍一下PyCha... 目录1. 安装China编程PyQt1.PyQt 核心组件2. 基础 PyQt 应用程序结构3. 使用 Q

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads