怎么做企业营销型网站,网站开发准备流程,vi设计用什么软件,怎样搭建个人网站vimrc配置文件
转自#xff1a;https://www.ruanyifeng.com/blog/2018/09/vimrc.html
Vim 是最重要的编辑器之一#xff0c;主要有下面几个优点。
可以不使用鼠标#xff0c;完全用键盘操作。系统资源占用小#xff0c;打开大文件毫无压力。键盘命令变成肌肉记忆以后https://www.ruanyifeng.com/blog/2018/09/vimrc.html
Vim 是最重要的编辑器之一主要有下面几个优点。
可以不使用鼠标完全用键盘操作。系统资源占用小打开大文件毫无压力。键盘命令变成肌肉记忆以后操作速度极快。服务器默认都安装 Vi 或 Vim。
Vim 的配置不太容易它有自己的语法许许多多的命令。我总是记不清楚所以就整理了下面这篇文章列出主要配置项的含义。
一、基础知识
Vim 的全局配置一般在/etc/vim/vimrc或者/etc/vimrc对所有用户生效。用户个人的配置在~/.vimrc。
如果只对单次编辑启用某个配置项可以在命令模式下先输入一个冒号再输入配置。举例来说set number这个配置可以写在.vimrc里面也可以在命令模式输入。
:set number配置项一般都有打开和关闭两个设置。“关闭就是在打开前面加上前缀no”。 打开
set number 关闭
set nonumber上面代码中双引号开始的行表示注释。
查询某个配置项是打开还是关闭可以在命令模式下输入该配置并在后面加上问号。
:set number?上面的命令会返回number或者nonumber。
如果想查看帮助可以使用help命令。
:help number二、基本配置
1
set nocompatible不与 Vi 兼容采用 Vim 自己的操作命令。
2
syntax on打开语法高亮。自动识别代码使用多种颜色显示。
3
set showmode在底部显示当前处于命令模式还是插入模式。
4
set showcmd命令模式下在底部显示当前键入的指令。比如键入的指令是2y3d那么底部就会显示2y3当键入d的时候操作完成显示消失。
5
set mousea支持使用鼠标。
6
set encodingutf-8 使用 utf-8 编码。
7
set t_Co256启用256色。
8
filetype indent on开启文件类型检查并且载入与该类型对应的缩进规则。比如如果编辑的是.py文件Vim 就是会找 Python 的缩进规则~/.vim/indent/python.vim。
三、缩进
9
set autoindent按下回车键后下一行的缩进会自动跟上一行的缩进保持一致。
10
set tabstop2按下 Tab 键时Vim 显示的空格数。
11
set shiftwidth4在文本上按下增加一级缩进、取消一级缩进或者取消全部缩进时每一级的字符数。
12
set expandtab由于 Tab 键在不同的编辑器缩进不一致该设置自动将 Tab 转为空格。
13
set softtabstop2Tab 转为多少个空格。
四、外观
14
set number显示行号
15
set relativenumber显示光标所在的当前行的行号其他行都为相对于该行的相对行号。
16
set cursorline光标所在的当前行高亮。
17
set textwidth80设置行宽即一行显示多少个字符。
18
set wrap自动折行即太长的行分成几行显示。
set nowrap关闭自动折行
19
set linebreak只有遇到指定的符号比如空格、连词号和其他标点符号才发生折行。也就是说不会在单词内部折行。
20
set wrapmargin2指定折行处与编辑窗口的右边缘之间空出的字符数。
21
set scrolloff5垂直滚动时光标距离顶部/底部的位置单位行。
22
set sidescrolloff15水平滚动时光标距离行首或行尾的位置单位字符。该配置在不折行时比较有用。
23
set laststatus2是否显示状态栏。0 表示不显示1 表示只在多窗口时显示2 表示显示。
24
set ruler在状态栏显示光标的当前位置位于哪一行哪一列。
五、搜索
25
set showmatch光标遇到圆括号、方括号、大括号时自动高亮对应的另一个圆括号、方括号和大括号。
26
set hlsearch搜索时高亮显示匹配结果。
27
set incsearch输入搜索模式时每输入一个字符就自动跳到第一个匹配的结果。
28
set ignorecase搜索时忽略大小写。
29
set smartcase如果同时打开了ignorecase那么对于只有一个大写字母的搜索词将大小写敏感其他情况都是大小写不敏感。比如搜索Test时将不匹配test搜索test时将匹配Test。
六、编辑
30
set spell spelllangen_us打开英语单词的拼写检查。
31
set nobackup不创建备份文件。默认情况下文件保存时会额外创建一个备份文件它的文件名是在原文件名的末尾再添加一个波浪号〜。
32
set noswapfile不创建交换文件。交换文件主要用于系统崩溃时恢复文件文件名的开头是.、结尾是.swp。
33
set undofile保留撤销历史。
Vim 会在编辑时保存操作历史用来供用户撤消更改。默认情况下操作记录只在本次编辑时有效一旦编辑结束、文件关闭操作历史就消失了。
打开这个设置可以在文件关闭后操作记录保留在一个文件里面继续存在。这意味着重新打开一个文件可以撤销上一次编辑时的操作。撤消文件是跟原文件保存在一起的隐藏文件文件名以.un~开头。
34
set backupdir~/.vim/.backup//
set directory~/.vim/.swp//
set undodir~/.vim/.undo// 设置备份文件、交换文件、操作历史文件的保存位置。
结尾的//表示生成的文件名带有绝对路径路径中用%替换目录分隔符这样可以防止文件重名。
35
set autochdir自动切换工作目录。这主要用在一个 Vim 会话之中打开多个文件的情况默认的工作目录是打开的第一个文件的目录。该配置可以将工作目录自动切换到正在编辑的文件的目录。
36
set noerrorbells出错时不要发出响声。
37
set visualbell出错时发出视觉提示通常是屏幕闪烁。
38
set history1000Vim 需要记住多少次历史操作。
39
set autoread打开文件监视。如果在编辑过程中文件发生外部改变比如被别的编辑器编辑了就会发出提示。
40
set listcharstab:»■,trail:■
set list如果行尾有多余的空格包括 Tab 键该配置将让这些空格显示成可见的小方块。
41
set wildmenu
set wildmodelongest:list,full命令模式下底部操作指令按下 Tab 键自动补全。第一次按下 Tab会显示所有匹配的操作指令的清单第二次按下 Tab会依次选择各个指令。
另一篇总结
以下是另一篇博客的总结
https://blog.51cto.com/zpf666/2335640
~/.vimrc
vim config file
date 2018-12-26
Created by bert
blog:http://blog.51cto.com/zpf666全局配置关闭vi兼容模式
set nocompatible设置历史记录步数
set history1000开启相关插件
侦测文件类型
filetype on
载入文件类型插件
filetype plugin on
为特定文件类型载入相关缩进文件
filetype indent on当文件在外部被修改时自动更新该文件
set autoread激活鼠标的使用
set mousea
set selectionexclusive
set selectmodemouse,key保存全局变量
set viminfo!带有如下符号的单词不要被换行分割
set iskeyword_,$,,%,#,-通过使用: commands命令告诉我们文件的哪一行被改变过
set report0被分割的窗口间显示空白便于阅读
set fillcharsvert:\ ,stl:\ ,stlnc:\
字体和颜色自动开启语法高亮
syntax enable设置字体
set guifontdejaVu\ Sans\ MONO\ 10
set guifontCourier_New:h10:cANSI设置颜色
colorscheme desert高亮显示当前行
set cursorline
hi cursorline guibg#00ff00
hi CursorColumn guibg#00ff00高亮显示普通txt文件需要txt.vim脚本
au BufRead,BufNewFile * setfiletype txt
代码折叠功能激活折叠功能
set foldenable
set nofen这个是关闭折叠功能设置按照语法方式折叠可简写set fdmXX
有6种折叠方法
manual 手工定义折叠
indent 更多的缩进表示更高级别的折叠
expr 用表达式来定义折叠
syntax 用语法高亮来定义折叠
diff 对没有更改的文本进行折叠
marker 对文中的标志进行折叠
set foldmethodmanual
set fdl0这个是不选用任何折叠方法设置折叠区域的宽度
如果不为0则在屏幕左侧显示一个折叠标识列
分别用“-”和“”来表示打开和关闭的折叠
set foldcolumn0设置折叠层数为3
setlocal foldlevel3设置为自动关闭折叠
set foldcloseall用空格键来代替zo和zc快捷键实现开关折叠
zo O-pen a fold (打开折叠)
zc C-lose a fold (关闭折叠)
zf F-old creation (创建折叠)
nnoremap space ((foldclosed(line(.)) 0) ? zc : zo)CR
文字处理使用空格来替换Tab
set expandtab设置所有的Tab和缩进为4个空格
set tabstop4设定和命令移动时的宽度为4
set shiftwidth4使得按退格键时可以一次删除4个空格
set softtabstop4
set smarttab缩进自动缩进继承前一行的缩进
set autoindent 命令打开自动缩进是下面配置的缩写
可使用autoindent命令的简写即“:set ai”和“:set noai”
还可以使用“:set ai sw4”在一个命令中打开缩进并设置缩进级别
set ai
set cindent智能缩进
set si自动换行”
set wrap设置软宽度
set sw4行内替换
set gdefault
Vim 界面增强模式中的命令行自动完成操作
set wildmenu显示标尺
set ruler设置命令行的高度
set cmdheight1显示行数
set nu不要图形按钮
set go在执行宏命令时不进行显示重绘在宏命令执行完成后一次性重绘以便提高性能
set lz使回格键backspace正常处理indent, eol, start等
set backspaceeol,start,indent允许空格键和光标键跨越行边界
set whichwrap,,h,l设置魔术
set magic关闭遇到错误时的声音提示
关闭错误信息响铃
set noerrorbells关闭使用可视响铃代替呼叫
set novisualbell高亮显示匹配的括号([{和}])
set showmatch匹配括号高亮的时间单位是十分之一秒
set mat2光标移动到buffer的顶部和底部时保持3行距离
set scrolloff3搜索逐字符高亮
set hlsearch
set incsearch搜索时不区分大小写
还可以使用简写“:set ic”和“:set noic”
set ignorecase用浅色高亮显示当前行
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul输入的命令显示出来看的清楚
set showcmd
编码设置设置编码
set encodingutf-8
set fencsutf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936设置文件编码
set fileencodingsutf-8设置终端编码
set termencodingutf-8设置语言编码
set langmenuzh_CN.UTF-8
set helplangcn
其他设置开启新行时使用智能自动缩进
set smartindent
set cin
set showmatch在处理未保存或只读文件的时候弹出确认
set confirm隐藏工具栏
set guioptions-T隐藏菜单栏
set guioptions-m置空错误铃声的终端代码
set vb t_vb显示状态栏默认值为1表示无法显示状态栏
set laststatus2状态行显示的内容
set statusline%F%m%r%h%w\ [FORMAT%{ff}]\ [TYPE%Y]\ [POS%l,%v][%p%%]\ %{strftime(\%d/%m/%y\ -\ %H:%M\)}粘贴不换行问题的解决方法
set pastetoggleF9设置背景颜色
set backgrounddark文件类型自动检测代码智能补全
set completeoptlongest,preview,menu共享剪切板
set clipboardunnamed从不备份
set nobackup
set noswapfile自动保存
set autowrite显示中文帮助
if version 603set helplangcnset encodingutf-8
endif设置高亮相关项
highlight Search ctermbgblack ctermfgwhite guifgwhite guibgblack
在shell脚本开头自动增加解释器以及作者等版权信息新建.py,.cc,.sh,.java文件自动插入文件头
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec :call SetTitle()
定义函数SetTitle自动插入文件头
func SetTitle()if expand (%:e) shcall setline(1, #!/bin/bash)call setline(2, #Author:bert)call setline(3, #Blog:http://blog.51cto.com/zpf666)call setline(4, #Time:.strftime(%F %T))call setline(5, #Name:.expand(%))call setline(6, #Version:V1.0)call setline(7, #Description:This is a production script.)endif
endfunc