重新配了一下vim

本文介绍了Vim编辑器的高级配置方法,包括多种插件的安装与设置,如ctags、omnicppcomplete等,以提升代码编写效率。同时分享了具体的.vimrc配置文件内容,展示了如何实现代码自动补全、目录树显示等功能。

之前把vim弄得乱七八糟,这次重新弄了一下。

现在主要有以下功能和对应插件:

1 按 . 或 :: 或 -> 的自动补全,补全是根据自定义的类型以及C++标准库类型 ;快捷键跳转到函数定义: 插件ctags,插件omnicppcomplete

2 注释等快捷键:插件c-support

3 在输入代码时自动匹配,不用按快捷键,匹配语言关键字或是曾经输入的历史记录:插件autocomplpop

4 目录树显示:插件nerdtree

5 每个文件的函数名,等显示:插件taglist(依赖于ctags)

具体这些插件怎么安装,没时间写了,可以搜索这些插件的使用方法。


现把~/.vim文件夹下的目录结构截图:



配置文件~/.vimrc的内容如下:

配置文件日期:2013.04.21 21:36

colorscheme jungle
set hlsearch
set backspace=2
set autoindent
set ruler
set showmode
set bg=dark
set nobackup                " 覆盖文件时不备份
set autochdir               " 自动切换当前目录为当前文件所在的目录
"filetype plugin indent on   " 开启插件
set noerrorbells            " 关闭错误信息响铃
set novisualbell            " 关闭使用可视响铃代替呼叫
set t_vb=                   " 置空错误铃声的终端代码
set t_Co=256

"自动缩进的时候,缩进尺寸为4个空格
set sw=4

"Tab宽度为4个字符
set ts=4

"可以使用鼠标
set mouse=a

"使用C样式的缩进
set cindent

"为C程序提供自动缩进
set smartindent

"打开 C/C++ 风格的自动缩进。 打开了自动缩进后, 在编码的时候我们可以使用“V”命令选中一段文本后.
set cin
                                
" 设定默认解码
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936

" 不要使用vi的键盘模式,而是vim自己的
set nocompatible

" history文件中需要记录的行数
set history=100

" 在处理未保存或只读文件的时候,弹出确认
set confirm

" 与windows共享剪贴板
set clipboard+=unnamed

" 侦测文件类型
filetype on

" 载入文件类型插件
filetype plugin on

" 为特定文件类型载入相关缩进文件
filetype indent on

"取消补全内容以分割子窗口形式出现,只显示补全列表
set completeopt=longest,menu

" 保存全局变量
set viminfo+=!

" 带有如下符号的单词不要被换行分割
set iskeyword+=_,$,@,%,#,-

" 语法高亮
syntax on

" 高亮字符,让其不受100列限制
:highlight OverLength ctermbg=red ctermfg=white guibg=red guifg=white
:match OverLength '\%101v.*'

" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
highlight StatusLineNC guifg=Gray guibg=White



" C++的编译和运行
 map <F6> :call CompileRunGpp()<CR>
 func! CompileRunGpp()
 exec "w"
 exec "!g++ % -o %<"
 exec "! ./%<"
 endfunc

 " C的编译和运行
 map <F5> :call CompileRunGcc()<CR>
 func! CompileRunGcc()
 exec "w"
 exec "!gcc % -o %<"
 exec "! ./%<"
 endfunc



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Autocommands
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示

if has("autocmd")
   autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby,nc set number
   autocmd FileType xml,html vmap <C-o> <ESC>'<i<!--<ESC>o<ESC>'>o-->
   autocmd FileType java,c,cpp,nc,cs vmap <C-o> <ESC>'<o
   autocmd FileType html,text,php,vim,c,nc,java,xml,bash,shell,perl,python setlocal textwidth=100
   autocmd Filetype html,xml,xsl source $VIMRUNTIME/plugin/closetag.vim
"autocmd BufReadPost *
   \ if line("'"") > 0 && line("'"") <= line("$") |
   \   exe "normal g`"" |
   \ endif
endif " has("autocmd")


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

 " => Plugin configuration

 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
 " NERDTree
 let NERDTreeMouseMode = 3        "单击打开文件和文件夹

 map <F8> :NERDTreeToggle<CR>

 " taglist
 let Tlist_Auto_Highlight_Tag = 1
 let Tlist_Auto_Open = 0
 let Tlist_Auto_Update = 1
 let Tlist_Close_On_Select = 0
 let Tlist_Compact_Format = 0
 let Tlist_Display_Prototype = 1
 let Tlist_Display_Tag_Scope = 0
 let Tlist_Enable_Fold_Column = 0
 let Tlist_Exit_OnlyWindow = 1
 let Tlist_File_Fold_Auto_Close = 0
 let Tlist_GainFocus_On_ToggleOpen = 1
 let Tlist_Hightlight_Tag_On_BufEnter = 1
 let Tlist_Inc_Winwidth = 0
 let Tlist_Use_Right_Window = 1    "在右侧窗口中显示taglist窗口
 let Tlist_Show_One_File = 1       "只显示一个文件的list
 let Tlist_Use_SingleClick = 1     "点击一次就显示成员或变量定义的位置

 map <F12> :TlistToggle<CR>



"""""""""""""""""""""""""""""""""""""""""""""""""""""
" => 自动补全
""""""""""""""""""""""""""""""""""""""""""""""""""""""
"au FileType php setlocal dict+=/etc/vim/php_funclist.txt

"php 中 一般是会在 $, ->, :: 后需要出现自动补全,在 .vimrc 中加入以下代码:

"if !exists('g:AutoComplPop_Behavior')
"    let g:AutoComplPop_Behavior = {}
"    let g:AutoComplPop_Behavior['php'] = []
"    call add(g:AutoComplPop_Behavior['php'], {
"         \   'command'   : "\<C-x>\<C-o>", 
"         \   'pattern'   : printf('\(->\|::\|\$\)\k\{%d,}$', 0),
"         \   'repeat'    : 0,
"         \})
"endif


"2013-4-15添加
"-- omnicppcomplete setting --
set completeopt=menu,menuone
let OmniCpp_MayCompleteDot = 1 " autocomplete with .
let OmniCpp_MayCompleteArrow = 1 " autocomplete with ->
let OmniCpp_MayCompleteScope = 1 " autocomplete with ::
let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert)
let OmniCpp_NamespaceSearch = 2 " search namespaces in this and included files
let OmniCpp_ShowPrototypeInAbbr = 1 " show function prototype  in popup window
let OmniCpp_GlobalScopeSearch=1
let OmniCpp_DisplayMode=1
let OmniCpp_ShowAccess = 1
let OmniCpp_DefaultNamespaces=["std"]


" -- ctags setting  2013.4.16 11:06
set nocp
autocmd FileType c,cpp,cc set tags+=~/.vim/tags/cpptags
autocmd FileType nc set tags+=~/.vim/tags/nesCtags
au BufWritePost *.c,*.cpp,*.cc,*.nc,*.h !ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .



"在 Vim 中实现括号自动补全:

":inoremap ( ()<ESC>i
":inoremap ) <c-r>=ClosePair(')')<CR>
":inoremap { {}<ESC>i
":inoremap } <c-r>=ClosePair('}')<CR>
":inoremap [ []<ESC>i
":inoremap ] <c-r>=ClosePair(']')<CR>

"function ClosePair(char)
"    if getline('.')[col('.') - 1] == a:char
"        return "\<Right>"
"    else
"        return a:char
"    endif
"endf


" 查看方法输入:Man api_name
source $VIMRUNTIME/ftplugin/man.vim

" 映射之后就可以少按一下 Shift 键。
cmap man Man

" 在普通模式下按下 K (大写)即可启动 man 查看光标下的函数。
nmap K :Man <cword><CR>



"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => nesC配置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
augroup filetypedetect  
      au! BufRead,BufNewFile *nc setfiletype nc  
augroup END







传一张最终的效果图:



Nano-ESG数据资源库的构建基于2023年初至2024年秋季期间采集的逾84万条新闻文本,从中系统提炼出企业环境、社会及治理维度的信息。其构建流程首先依据特定术语在德语与英语新闻平台上检索,初步锁定与德国DAX 40成分股企业相关联的报道。随后借助嵌入技术对文本段落执行去重操作,以降低内容冗余。继而采用GLiNER这一跨语言零样本实体识别系统,排除与目标企业无关的文档。在此基础上,通过GPT-3.5与GPT-4o等大规模语言模型对文本进行双重筛选:一方面判定其与ESG议题的相关性,另一方面生成简明的内容概要。最终环节由GPT-4o模型完成,它对每篇文献进行ESG情感倾向(正面、中性或负面)的判定,并标注所涉及的ESG具体维度,从而形成具备时序特征的ESG情感与维度标注数据集。 该数据集适用于多类企业可持续性研究,例如ESG情感趋势分析、ESG维度细分类别研究,以及企业可持续性事件的时序演变追踪。研究者可利用数据集内提供的新闻摘要、情感标签与维度分类,深入考察企业在不同时期的环境、社会及治理表现。此外,借助Bertopic等主题建模方法,能够从数据中识别出与企业相关的核心ESG议题,并观察这些议题随时间的演进轨迹。该资源以其开放获取特性与连续的时间覆盖,为探究企业可持续性表现的动态变化提供了系统化的数据基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值