vim基本配置.vimrc

vim配置文件.vimrc,基本配置如下:

"------------------------------------------------------------------------------------------"
"Vim9新增
" 菜单,vim9以下版本需注释下面一行
set wildoptions=pum
" 拼写检查z=  编辑文件的时候,按下Esc键,直接使用
"------------------------------------------------------------------------------------------"
" ctrl+p 前一个,ctrl+n 后一个,ctrl+y确认,ctrl+e取消补全
" <leader>键默认是 \,反斜杠"
let mapleader=" " "将leader键重新映射为空格

colorscheme evening "配色
"truecolor,开启24bit的颜色
set termguicolors
"永远显示状态栏
set laststatus=2

"******************************************************************************************"
"Quickfix配置
"配置 quickfix 相关命令的快捷键. 可以用:map命令

"修改QuickFix窗口显示的最大条目数
let g:ctrlp_max_height = 15

"compile c c++ file in quickfix  makeprg
nmap <F4> :call DoOneFileMake()<CR>
function DoOneFileMake()
    if(expand("%:p:h")!=getcwd())
        echohl WarningMsg | echo "Fail to make! This file is not in the current dir! Press redirect to the dir of this file."
    endif
    exec "w"
	call SetCompilation()

endfunction
function SetCompilation()
    if &filetype=='c'
        set makeprg=gcc\ %\ -o\ %<
		exec "make"
		exec '!time ./%<'
		exec "copen"
    elseif &filetype=='cpp'
        set makeprg=g++\ %\ -o\ %<
		exec "make"
		exec '!time ./%<'
		exec "copen"
    elseif &filetype=='python'
		exec "!time python3 %"
    endif
endfunction

" F3 关闭quickfix窗口
nnoremap <F3> :cclose<CR>
" F5 设置为:w :make :copen快捷键, 保存文件(加上:w操作,会有问题,所以去掉了)-->编译程序,执行Makefile文件-->打开Quickfix查看相关信息
nmap  <F5> :make<CR><CR><CR>:copen<CR>
" 运行程序
nmap <F6> :make run<CR><CR><cr>:copen<cr>

"******************************************************************************************"
"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
"在vim中加入文件署名和时间,,快捷键 <F2>
map <F2> ms:call AddAuthor()<cr>'s
function AddAuthor()
    let n=1
    while n < 5
        let line = getline(n)
        if line =~'^\s*\*\s*\S*Last\s*modified\s*:\s*\S*.*$'
            call UpdateTitle()
            return
        endif
        let n = n + 1
    endwhile
    call AddTitle()
endfunction
 
function UpdateTitle()
    normal m'
    execute '/* Last modified\s*:/s@:.*$@\=strftime(": %Y-%m-%d %H:%M")@'
    normal "
    normal mk
    execute '/* Filename\s*:/s@:.*$@\=": ".expand("%:t")@'
    execute "noh"
    normal 'k
    echohl WarningMsg | echo "Successful in updating the copy right." | echohl None
endfunction
 
function AddTitle()
    call append(0,"/**********************************************************")
    call append(1,"* Author        : 名字")
    call append(2,"* Email         : 邮箱")
    call append(3,"* Last modified : ".strftime("%Y-%m-%d %H:%M"))
    call append(4,"* Filename      : ".expand("%:t"))
    call append(5,"* Description   : ")
    call append(6,"**********************************************************/")
    echohl WarningMsg | echo "Successful in adding the copyright." | echohl None
endfunction
"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"

"******************************************************************************************"
"设置编码"
set fileencodings=utf-8,ucs-bom,gb1800,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

"设置cmdheight"
"set cmdheight=1

"显示行号"
set nu
"突出显示当前"
set cursorline

" 显示换行、空格
set list
"显示空格和Tab键"
set listchars=tab:>-,trail:-

"启用鼠标"
set mouse=a
set selection=exclusive
set selectmode=mouse,key

"显示括号匹配"
set showmatch


"设置Tab制表符长度为4个空格"
set tabstop=4
"设置自动缩进长度为4空格"
set shiftwidth=4
"软制表符宽度为4"
set softtabstop=4

"设置缩进"	
"自动缩进,继承前一行的缩进方式,适用于多行注释"
set autoindent
"自动缩进,可能是set autoindent的缩写
"set ai

set cindent

"智能对齐方式"
set smartindent
"不自动储存备份文档"
set nobackup			
"是否要显示--INSERT--之类的字眼在左下角的状态列"
set showmode

"不启动vi兼容模式"
set nocompatible
"设置backspace的工作方式
set backspace=indent,eol,start

"try :set paste to turn off it
set cin

"自动语法高亮 syntax on和 syntax enable功能相同,只是syntax enable稍微优先"
syntax on
"高亮显示所有的匹配短语
set hlsearch
"折叠设置"
set foldmethod=manual


"*****************************************************************
" 仅对指定文件格式设置自动补全功能
autocmd FileType c,cpp,sh,java,html,js,css,python exec AutoComplete()
"自动补全括号,双引号,单引号
func! AutoComplete()
    "相关映射
    :inoremap ( ()<Left>
    :inoremap ) <c-r>=ClosePair(')')<CR>
    :inoremap { {}<Left>
    :inoremap } <c-r>=ClosePair('}')<CR>
    :inoremap [ []<Left>
    :inoremap ] <c-r>=ClosePair(']')<CR>
    :inoremap " <c-r>=DQuote()<CR>
    :inoremap ' <c-r>=SQuote()<CR>
	" 将BackSpace键映射为RemovePairs函数
    :inoremap <BS> <c-r>=RemovePairs()<CR>
	" 将回车键映射为BracketIndent函数
	:inoremap <CR> <c-r>=BracketIndent()<CR>
endfunc

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

"自动补全双引号
func! DQuote()
    if getline('.')[col('.') - 1] == '"'
        return "\<Right>"
    else
		if getline('.')[col('.') - 2] == '"'
			return '"'
		else
			return "\"\"\<Left>"
    endif
endfunc
"自动补全单引号
func! SQuote()
    if getline('.')[col('.') - 1] == "'"
        return "\<Right>"
    else
		if getline('.')[col('.') - 2] == "'"
			return "'"
		else
	        return "''\<Left>"
    endif
endfunc

" 按BackSpace键时判断当前字符和前一字符是否为括号对或一对引号,如果是则两者均删除,并保留BackSpace正常功能
func! RemovePairs()
	let l:line = getline(".") " 取得当前行
	let l:current_char = l:line[col(".")-1] " 取得当前光标字符
	let l:previous_char = l:line[col(".")-2] " 取得光标前一个字符 

	if (l:previous_char == '"' || l:previous_char == "'") && l:previous_char == l:current_char
		return "\<delete>\<bs>"
	elseif index(["(", "[", "{"], l:previous_char) != -1
		" 将光标定位到前括号上并取得它的索引值
		execute "normal! h" 
		let l:front_col = col(".")
		" 将光标定位到后括号上并取得它的行和索引值
		execute "normal! %" 
		let l:line1 = getline(".")
		let l:back_col = col(".")
		" 将光标重新定位到前括号上
		execute "normal! %"
		" 当行相同且后括号的索引比前括号大1则匹配成功
		if l:line1 == l:line && l:back_col == l:front_col + 1
			return "\<right>\<delete>\<bs>"
		else
			return "\<right>\<bs>"
		end
	else
	  	return "\<bs>" 
	end
endfunc 

" 在大括号内换行时进行缩进
func! BracketIndent()
	let l:line = getline(".")
	let l:current_char = l:line[col(".")-1] 
	let l:previous_char = l:line[col(".")-2] 
	
	if l:previous_char == "{" && l:current_char == "}"
		return "\<cr>\<esc>\ko"
	else
		return "\<cr>"
	end
endfunc


"自动提示,preview:是默认值,会自动选择第一个提示词;noselect:不自动选择第一个提示词
"set completeopt=preview,menu
"上面一句是Vim的默认设置,不用添加,如果要使用noselect则要添加这一句,并将preview改为noselect
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要下载.vimrc文件,可以按照以下步骤操作: 1. 打开任意网页浏览器,进入搜索引擎网站,如Google或百度。 2. 在搜索框中输入“vim配置文件.vimrc下载”并点击搜索按钮。 3. 在搜索结果中,可以看到一些网站提供.vimrc文件的下载链接。点击其中一个可靠的链接。 4. 进入下载页面后,查看文件下载方式。通常,会提供一个“下载”按钮或者直接显示文件内容。 5. 如果有“下载”按钮,点击该按钮进行下载。如果文件内容直接显示在页面上,复制整个内容。 6. 找到想要保存.vimrc文件的位置,例如桌面或者指定文件夹。 7. 在浏览器上右击鼠标,并选择“保存链接为”或“保存页面为”。然后,选择保存到指定位置。 8. 在保存对话框中,指定保存文件的名称为“.vimrc”,确保文件名前面有一个点来确保其为隐藏文件。 9. 点击保存按钮,等待文件下载完成。 10. 成功保存文件后,即可在指定位置找到下载的.vimrc文件。 注意事项:在下载文件时,始终选择可信任的来源,以确保文件的安全性。另外,.vimrc文件通常是用于Vim编辑器配置文件,如果使用其他编辑器,可能会需要相应的配置文件。 ### 回答2: 要下载vim配置文件.vimrc,你可以按照以下步骤进行操作: 1. 打开你的终端或命令行界面。 2. 使用curl命令下载.vimrc文件。在终端中输入以下命令并按下回车键: curl -o ~/.vimrc https://raw.githubusercontent.com/username/repo/master/.vimrc 这个命令会从GitHub的仓库中下载.vimrc文件并保存到你的主目录下。 替换"username/repo"部分为你所使用的GitHub用户名和仓库名称。 3. 下载完成后,你可以使用vim编辑器打开.vimrc文件来查看和修改配置。 在终端中输入以下命令打开.vimrc文件: vim ~/.vimrc 这将使用vim编辑器打开你的.vimrc文件,现在你可以根据自己的需求进行编辑和配置。 如果你对vim配置不熟悉,你可以搜索一些vim配置示例或教程,以帮助你进行必要的修改。 希望这个回答对你有所帮助! ### 回答3: vim配置文件.vimrc是用来定制Vim编辑器的设置和插件的配置文件。想要下载.vimrc文件,请按照以下步骤进行操作。 1. 打开你的命令行终端。 2. 在终端中输入以下命令,下载.vimrc文件: `wget https://raw.githubusercontent.com/username/repo/master/.vimrc` 这里的`https://raw.githubusercontent.com/username/repo/master/.vimrc`是.vimrc文件所在的URL。你需要将其替换为你想要下载的.vimrc文件的真实URL。 3. 下载完成后,.vimrc文件会保存在当前目录下。 4. 如果需要将.vimrc文件移动到其他目录,请使用以下命令: `mv .vimrc /desired/path` 这里的`/desired/path`是你想要移动到的目标路径。你需要将其替换为你想要保存.vimrc文件的目标路径。 通过上述步骤,你可以下载到你想要的.vimrc配置文件,并可以根据自己的需要进行自定义及编辑。记得根据实际情况修改命令中的URL和目标路径以适应你的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值