一、设置vim语法高亮显示和自动缩进

      1、配置文件的位置

在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件。

基本设置

设置高亮行和列有两种方式进行设置

set cursorcolumn
set cursorline
" or
set cuc
set cul

我建议使用第一种方式,这样可以看到配置就能知道是干什么用的了, 同时再加上注释,因为随着配置越来越多,最后自己可能都忘了这些 配置是用来干嘛的了。我们看一下效果图

centosvi语法高亮 vim 语法高亮_vim

美化

1. 安装dircolors:

git clone https://github.com/seebi/dircolors-solarized.git

cd dircolors-solarized/

mv dircolors.ansi-dark ~/.dircolors

 vim  /etc/profile

在bash_profile中添加:

export TERM=xterm-256color
if [ -x /usr/bin/dircolors ]; then
  alias ls='ls --color=auto'
  alias dir='dir --color=auto'
  alias vdir='vdir --color=auto'
  alias grep='grep --color=auto'
  alias fgrep='fgrep --color=auto'
  alias egrep='egrep --color=auto'
  alias tree='tree -C'
fi


重新登录后,生效。

我们现在已经能快速的分别光标所在的位置了,但是离我们最终需要的 效果还差一些,因为当前行是一条横线,所以有时候很难区分英文的逗号 和句号,在这个基础上我们需要加入一下配置

highlight CursorLine   cterm=NONE ctermbg=black ctermfg=green guibg=NONE guifg=NONE
highlight CursorColumn cterm=NONE ctermbg=black ctermfg=green guibg=NONE guifg=NONE

自动缩进和对齐

set autoindent

set smartindent

默认显示行号

set number

"代码补全

set completeopt=preview,menu

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

set confirm

 

" Tab键的宽度

set tabstop=4

" 统一缩进为4

set softtabstop=4

set shiftwidth=4

 " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)

set mouse=a

set selection=exclusive

set selectmode=mouse,key

 "搜索忽略大小写

set ignorecase

"搜索逐字符高亮

set hlsearch

set incsearch

 

" 在被分割的窗口间显示空白,便于阅读

set fillchars=vert:\ ,stl:\ ,stlnc:\

" 高亮显示匹配的括号

set showmatch

" 匹配括号高亮的时间(单位是十分之一秒)

set matchtime=1

"自动补全

"自动补全
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
":inoremap { {<CR>}<ESC>O
":inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
	if getline('.')[col('.') - 1] == a:char
		return "\<Right>"
	else
		return a:char
	endif
endfunction
filetype plugin indent on 
"打开文件类型检测, 加了这句才可以用智能补全
set completeopt=longest,menu

!!最终配置[文件最后加上就行了]--直接编辑/etc/ 下面,有个名为vimrc的文件,加到最后保存就行了,我配置好的

inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap { {}<ESC>i

set cul
set cuc
highlight CursorLine   cterm=NONE ctermbg=black ctermfg=green guibg=NONE guifg=NONE
highlight CursorColumn cterm=NONE ctermbg=black ctermfg=green guibg=NONE guifg=NONE
set autoindent
set smartindent
set completeopt=preview,menu
set syntax=on
" Tab键的宽度
set tabstop=4
" " 统一缩进为4
set softtabstop=4
set shiftwidth=4
 
 
"搜索忽略大小写
set ignorecase
""搜索逐字符高亮
set hlsearch
set incsearch

set fillchars=vert:\ ,stl:\ ,stlnc:\
set showmatch
set scrolloff=3
set matchtime=1  

" set number
""
""set mouse=a
""set selection=exclusive
" "set selectmode=mouse,key
 
" "set laststatus=2
inoremap ' ''<ESC>i
inoremap " ""<ESC>i

VIM快捷键

首先是vim自带的常用命令:

行号相关:

显示行号: :set number

隐藏行号: :set nonumber

修改撤销相关:

回退(相当于Ctrl+Z): u

撤销回退:ctrl+r

翻页相关:

上一页:Page Up(Win) ctrl+↑(Mac)  

下一页:Page Down(Win) ctrl+↓(Mac)

光标移动相关:
 

行首:Home(Win) ctrl+←(Mac)    (支持前加g)

行尾:Home(Win) ctrl+←(Mac)    (支持前加g)
回到底部:GG

回到顶部:gg

上下左右移动:上下左右(同行之间移动前加g)

移动到光标的下一个x处:fx

往前移动一个单词:w

往后移动一个单词:b

移动光标到屏幕上面:H

移动光标到屏幕中间:M

移动光标到屏幕下面:L

nG:移动光标到第n行

:n:移动光标到第n行

跳到上一个空行:shift + (

跳到下一个空行:shift + )

查找替换相关:

查找string:/string

查找关键字下一个:n

查找关键字上一个:shift + #

空格替换成,::%s/\s\+/,/g

替换每行第一个的str1为str2:%s/str1/str2

替换所有的str1为str2:%s/str1/str2/g

分屏相关:

垂直分屏: :vsplit

水平分屏: :split

分屏切换下一个:control + ww

分屏切换:control + w + ↑/↓

选中和复制粘贴相关:

Ctrl+v:进入列模式,自由上下选中,按d删除

可视选择模式:v(按字符选择)     V(按行选择)    d:(剪贴)    y:(拷贝)    c:(剪贴并进入插入模式)

非可视选择模式:dd:(剪切当前行)    yy:(拷贝当前行)

粘贴:p

复制6~9行到12行::6,9 co 12

全部删除:按esc后,然后dG

全部复制:按esc后,然后ggyG

全选高亮显示:按esc后,然后ggvG或者ggVG

复制相关:

添加注释:大写V选中需要注释的行, Ctrl+v进入列模式,大写I进入插入模式,输入#或//,连续按2下ESC

取消注释:ctrl+v进入列模式,选中注释符号,d删除

 

写代码相关:

Ctrl+n:代码补全

]p:和p的功能差不多,但是它会自动调整被粘贴的文本的缩进去适应当前代码的位置

%:匹配花括号,方括号,括号等。在一个括号的上面,然后按%,鼠标就会出现在匹配的另外一半括号处

>>:缩进所有选择的代码

<<:和上面类似,但是反缩进

gd:到达光标所在处函数或者变量的定义处

:set paste 粘贴代码避免格式混乱

:Set nopaste

jobs相关:
 

jobs:显示当前运行的jobs

Ctrl+z:显示jobs控制台

fg %n:打开id为n的job

gd %n:关闭id为n的job