"判定当前操作系统类型
if has("win32")||has("win95")||has("win64")||has("win16")
let g:iswindows=1
else
let g:iswindows=0
endif
set t_Co=256
set rtp+=~/.vim/bundle/vundle/,~/.vim/bundle/vim-golang/
"=========================================
"vim配置设置
"=========================================
"取消vi兼容
set nocompatible
"将底色设置为淡绿色
"highlight Normal guibg=#CCE8CF
"设置字体
set guifont=Monaco
"允许退格键使用
set backspace=indent,eol,start whichwrap+=<,>,[,]
"禁止备份
set nobackup
"显示行号
set number
"实时匹配搜索文本
set incsearch
"搜索时高亮现实被找到的文本
set hlsearch
"magic模式:除了$.*^之外其他元字符都要加反斜杠
set magic
"开启新行时使用智能自动缩进
set smartindent
"编辑过程中,右下角显示光标位置
set ruler
"自动检测文件类型并加载相应插件以及缩进
filetype plugin indent on
"关于缩进的相关说明
"shiftwidth(缩进的空格数)
"tabstop(制表符的宽度,只是把制表符的缩进量给改了,还是一个tab,所以跨平台时依旧会出现不一致)
"expandtab(是否在缩进和遇到Tab键时使用空格替代,主要是保证跨平台时缩进的一致性;使用noexpandtab取消设置)
"softtabstop(软制表符宽度,设置为非零数值后使用Tab键和Backspace时光标移动的格数等于该数值,但实际插入的字符仍受tabstop和expandtab控制)
"autoindent(自动缩进,即每行的缩进值与上一行相等;使用noautoindent取消设置)
set tabstop=8
set softtabstop=4
set shiftwidth=4
set expandtab
"设置显示编码
set enc=utf-8
"设置打开文件编码
set fencs=utf-8,GB18030
"设置开启语法高亮
syntax on
"设置leader键
let mapleader = ","
"智能补全
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType c set omnifunc=ccomplete#Complete
autocmd FileType java set omnifunc=javacomplete#Complete
"F2显示或隐藏菜单栏
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>
"=================================
"vim按键映射
"=================================
"映射按键:剪切版、全选,系统有效
vmap <C-c> "+y
vmap <C-x> "+x
nmap <C-v> "+gP
vmap <C-v> "+gP
nmap <C-a> ggVG
"某些terminal下的vim alt key映射需要转成^[的形式
"ctrl+v ESC即可输入^[
if has("gui_running")
"智能补全
imap <M-/> <C-X><C-N>
"insert模式下将光标移动到行尾
imap <M-;> <Esc><S-a>
"insert模式下的光标的左右移动
imap <M-h> <Left>
imap <M-l> <Right>
imap <M-k> <up>
imap <M-j> <down>
else
"智能补全
imap ^[/ <C-X><C-N>
"insert模式下将光标移动到行尾
imap ^[; <Esc><S-a>
"insert模式下的光标的左右移动
imap ^[h <Left>
imap ^[l <Right>
imap ^[k <up>
imap ^[j <down>
endif
"运行Python脚本的按键映射
map <F12> :!"python" %<CR>
"运行gcc编译
"在windows下配置,则需要在%<后面加上.exe
func Compile()
exec "w"
"C程序
if &filetype == 'c'
exec "!gcc -Wall -std=c99 % -g -lm -o %<"
"c++程序
elseif &filetype == 'cpp'
exec "!g++ -Wall -enable-auto-import % -g -lm -o %<"
"Java程序
elseif &filetype == 'java'
exec "!javac %"
endif
endfunc
"结束定义Compile
"定义Run函数
"./是当前目录,在windows下会报错
func Run()
if &filetype == 'c' || &filetype == 'cpp'
exec "!./%<"
elseif &filetype == 'java'
exec "!java %<"
elseif &filetype == 'go'
exec "!go run %"
endif
endfunc
"结束定义Run
"运行gcc编译并执行
"在windows下配置,则需要在%<后面加上.exe
func CompileRun()
exec "w"
"C程序
if &filetype == 'c'
exec "!gcc -Wall -std=c99 % -g -lm -o %<"
exec "!./%<"
"c++程序
elseif &filetype == 'cpp'
exec "!g++ -Wall -enable-auto-import % -g -lm -o %<"
exec "!./%<"
"Java程序
elseif &filetype == 'java'
exec "!javac %"
exec "!java %<"
"Go程序
elseif &filetype == 'go'
exec "!go run %"
endif
endfunc
"结束定义CompileRun
"定义Debug函数,用来调试程序
func Debug()
exec "w"
"C程序
if &filetype == 'c'
exec "!gcc -std=c99 % -g -lm -o %<"
exec "!gdb %<"
elseif &filetype == 'cpp'
exec "!g++ % -g -lm -o %<"
exec "!gdb %<"
"Java程序
elseif &filetype == 'java'
exec "!javac %"
exec "!jdb %<"
endif
endfunc
"结束定义Debug
"设置程序的运行和调试的快捷键
map <F9> :call Compile()<CR>
map <F10> :call Run()<CR>
map <F11> :call Debug()<CR>
map <F12> :call CompileRun()<CR>
"==================================
"ctags配置
"==================================
"当前目录找不到tag元文件,则向上查找
set tags=tags;
"设置当前目录为当前打开文件所在目录
set autochdir
"==================================
"taglist配置
"==================================
"不同时显示多个文件的tag,只显示当前文件的
let Tlist_Show_One_File=1
"如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Exit_OnlyWindow=1
"==================================
"WinManager配置
"==================================
let g:NERDTree_title='NERD Tree'
let g:winManagerWindowLayout='NERDTree|TagList'
function! NERDTree_Start()
exec 'NERDTree'
endfunction
function! NERDTree_IsValid()
return 1
endfunction
"映射WinManager快捷键,在normal模式下按mt,控制开启和关闭
"nmap <silent> mt :WMToggle<CR>
nmap <silent> mt :if IsWinManagerVisible() <BAR> WMToggle<CR> <BAR> else <BAR> WMToggle<CR>:q<CR> endif <CR>
"设置WinManager宽度
let g:winManagerWidth = 40
"在进入vim时自动打开winmanager,打开=1,关闭=0
let g:AutoOpenWinManager = 0
"==================================
"Grep配置
"==================================
"直接按下<F3>键来查找光标所在的字符串:Grep插件
nnoremap <silent> <F3> :Rgrep<CR>
"=================================
"MiniBufExplorer配置
"=================================
"使用<C-Tab>向前循环切换到每个buffer上,并在当前窗口打开。<C-S-Tab>向后循环
"let g:miniBufExplMapCTabSwitchBufs = 1
"If you use other explorers like TagList you can
"let g:miniBufExplModSelTarget = 1
"关闭标签页
map <leader>c :CMiniBufExplorer<cr>
"=================================
"autocomplpop
"=================================
"acp是否自动开启,1=yes,0=no
let g:acp_enableAtStartup = 0
"mappigDriven防止单纯的鼠标移动造成搜索
let g:acp_mappingDriven = 1
"=================================
"neocomplcache配置
"=================================
"source neocomplcache.conf
"=================================
"vundle配置
"=================================
call vundle#rc()
Bundle 'gmarik/vundle'
"Bundle 'vim-plugin-foo'
"Bundle 'vim-plugin-bar'
Bundle 'Auto-Pairs'
Bundle 'bufexplorer.zip'
Bundle 'ctags.vim'
Bundle 'taglist.vim'
Bundle 'winmanager--Fox'
Bundle 'The-NERD-tree'
Bundle 'neocomplcache'
Bundle 'minibufexpl.vim'
Bundle 'https://github.com/abra/obsidian2.git'
Bundle 'https://github.com/bradfitz/goimports.git'
Bundle 'cespare/vim-golang'
colorscheme obsidian2
autocmd BufWritePre *.go :Fmt
分享到:
相关推荐
掌握: Vim文本编辑器界面快捷键 【能力目标】 会初步使用Vim文本编辑器 【思政目标】 在克服学习困难中培养学生良好的意志品质 ,树立学习自信心,提升自学能力。 vi(visual interface)是Linux和UNIX中功能最为...
Linux篇 Linux下创建定时执行任务可使用crontab,系统默认自带crontab,在Ubuntu 16.04下进行演示说明。 1.crontab 基本使用 #/etc/init.d/cron status # 查看状态 ...#sudo vim /etc/rsyslog.d/5
更新日志 2019-05-07增加一键部署脚本,方便快速预览 2019-01-15增加前端管理页面 2018-11-01提交预设版本代码 快速体验部署[Docker] vim quick_start.sh #配置DB账号信息 bash quick_start.sh 普通部署 一安装依赖...
linux安装系统,配置网络,修改磁盘,配置yum源,vi等命令操作以及建安案例示范
nginx配置文件路径:/etc/nginx/nignx.conf, nginx日志文件路径:/var/log/nginx/access.log nignx.pid路径:/run/nginx.pid 新建的定时脚本位置/shell/nginx/logs.sh 1.新建脚本并执行 #mkdir /shell/nignx #cd /...
5-实战-设置服务器来电后自动开机-设置服务器定时开机 第3章-文件系统的管理方法和xfs文件系统备份恢复 1-Linux系统目录结构和相对路径与绝对路径 2-文件的管理 3-查看文件 4-实战-xfs文件系统的备份和恢复-1 5-实战...
修改配置文件 vim confxml.xml <localpath watch="/var/www/html"> #本地同步数据目录。 主机ip地址" name="wwwroot"/> #B主机rsync 模块名称 users="B主机/etc/rsyncd.conf配置文件中的auth users值" password...
徒手实现定时爬取知乎,从中发掘目标的信息,并可视化爬取的数据作网页展示。项目当前正在开发,欢迎前来交流学习! 问题及解决方案 日志程序运行时统一初始化。由于logging应用了单例模式,之后可以直接使用配置好...
5.15.4 检索不包含特定字符 ??串的文本行 129 5.15.5 在grep中使用正则 ??表达式 129 5.15.6 检索元字符本身 131 5.15.7 在命令行中使用引号 131 5.16 排序 132 第6章 编辑文件 133 6.1 启动vim编辑器 134 6.1.1 ...
5.15.4 检索不包含特定字符 ??串的文本行 129 5.15.5 在grep中使用正则 ??表达式 129 5.15.6 检索元字符本身 131 5.15.7 在命令行中使用引号 131 5.16 排序 132 第6章 编辑文件 133 6.1 启动vim编辑器 134 6.1.1 ...
ScanCVE 0.1 这个脚本主要定时扫描github,监控cve的增量情况,如存在增量poc情况,逐步通过微信公众号进行转换。... root# vim conf / info.conf #配置微信公众号信息 root# nohup python ScanCVE.py和 运行截图
1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载体验!下载完使用问题请私信沟通。...增加json配置文件,支持类似nginx的多网站配置 提供CGI支持 类似nginx的反向代理和负载均衡 必要时增加可复用内存池。
----不保存⽽强制离开 4.vim快捷键 拷贝当前⾏:yy,拷贝当前⾏向下的5⾏:5yy。粘贴:p。【⼀般模式】 删除当前⾏:dd,删除当前⾏向下的5⾏:5dd 【⼀般模式】 在⽂件中查找某个单词 【命令模式下:/关键字,回车...
Centos7虚拟机配置网络 SSH Vim与Shell ftp服务vsftpd 代理缓存知识 存储结构与磁盘知识 文件共享 用户身份与权限 管道符、重定向与环境变量 定时任务 邮件系统 防火墙 docker docker基础 docker安装 docker仓库知识...
套餐柏油vim 定时任务获取日志用法简单的docker run -d vinelab/base 坚持使用docker run -i -t --rm vinelab/base bash进行会话主管用户名: vinelab密码: vinelab添加服务要添加要由主管管理的服务,将包含程序...
配置 通过公网主机定时运行脚本,并发送邮件到自己的qq邮箱,这样在微信就会有消息提示是否预约成功 vim /etc/crontab 设置每到早上7:01自动运行脚本即可 程序流程 (以yuyue.juneberry.cn网站为例) get访问登录...
vi和Vim编辑器 开机、重启和用户登录注销 用户管理 实用指令 定时任务调度 磁盘分区、挂载 网络配置 进程管理 RPM和YUM 三、Linux 学习方向 3.1 Linux运维工程师 (保障服务器正常运行,故障处理,服务器...
1.6.1 Vi及Vim 20 1.6.2 Eclipse+PHPEclipse插件 21 1.6.3 UltraEdit 21 1.6.4 EditPlus 22 1.6.5 支持PHP的IDE环境 22 1.7 小结 23 第2章 PHP的基础语法 24 2.1 语言构成与工作原理 24 2.2 常量与变量 25 2.2.1 ...
7.4 autoreconf指令:更新已经生成的配置文件 7.5 autoscan指令:生成configure.in模板文件 7.6 autoupdate 指令:更新 configure.in文件 7.7 gcc指令:GNU的C和C++编译器 7.8 gdb指令:GNU调试器 7.9 gdbserver指令...