-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.vimrc
159 lines (132 loc) · 6.05 KB
/
.vimrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
" GitHub: https://github.com/NsLib
" Blog: http://blog.csdn.net/MDL13412
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"===============================================================================
" Vim Settings
"===============================================================================
"{{{ start pathogen
execute pathogen#infect()
"}}}
"{{{ 基本设置
set nocompatible " 不兼容老得VI,除非有特殊的理由
"}}}
"{{{语法检测设定
filetype on " 检测打开文件的类型
syntax on " 开启语法高亮
syntax enable " 激活语法高亮
filetype plugin on " 允许特定的文件类型载入插件文件
filetype indent on " 允许特定的文件类型载入缩进文件
"}}}
"{{{ 编码及存储
set fileencodings=utf-8 " 文件编码,强制UTF-8
set encoding=utf-8 " vim内部编码
set nobomb " 不使用bom编码
set nobackup " 不使用备份文件
set noswapfile " 不产生交换文件
set autoread " 自动同步外部修改
set autowrite " 自动把内容写回文件
"}}}
"{{{ 缩进/换行/空白/行号/折叠/滚动
" 缩进
set autoindent " 开启新行时,自动缩进
set smartindent " 开启新行时,智能缩进
set cindent " C程序自动缩进
" 换行
set nowrap " 不自动换行
set lbr " 不在单词中间断行
set fo+=mB " 打开断行模块对亚洲语言支持
set whichwrap+=<,>,h,l " 命令模式下可以直接移动到下一行或上一行
" 空白
set shiftwidth=4 " 缩进空白数
set tabstop=4 " Tab所占空格数
set expandtab " 将Tab展开为空格
set softtabstop=4 " 配合tabstop
set listchars=tab:▸\ ,trail:▫ " 指定Tab和结尾空白字符
" Makefile中需要使用Tab
autocmd FileType make set noexpandtab
set backspace=eol,start,indent " 插入模式下使用 <BS>、<Del> <C-W> <C-U>
" 行号
set number " 显示行号
" 代码折叠
set foldenable " 开启代码折叠
set foldmethod=syntax " 根据语法折叠代码
" Vim折叠
autocmd FileType vim setlocal foldmethod=marker
autocmd FileType vim setlocal foldmarker={{{,}}}
" 用空格键开关折叠
nnoremap <silent> <space> @=((foldclosed(line('.')) < 0) ? 'zc':'zo')<CR>
"}}}
"{{{ 状态栏/标尺
set ruler " 显示光标所在位置
set cursorline " 高亮当前行
set showcmd " 再屏幕最后一行显示命令
set laststatus=2 " 始终显示状态栏
set cmdheight=1 " 命令行使用的屏幕行数
"}}}
"{{{ 搜索和匹配
set showmatch " 高亮显示匹配的括号
set matchtime=5 " 匹配括号高亮的时间(单位是十分之一秒)
set ignorecase " 搜索时忽略大小写
set smartcase " 如果搜索模式包含大写字符,不使用'ignorecase'选项
set hlsearch " 高亮被搜索的内容
set incsearch " 增量搜索
"}}}
"{{{ 主题设置
set t_Co=256 " 开启256色支持
"}}}
"{{{ 杂项
set noerrorbells " 错误时不发出声响
set novisualbell " 禁用可视响铃
set t_vb= " 可视响铃
set mouse=a " 所有模式下,开启鼠标支持
set wildmenu " 命令行补全以增强模式运行
set splitright " 竖直新分割的窗口在右侧
set splitbelow " 水平新分割的窗口在下面
" 打开上次编辑位置
autocmd BufReadPost * if line("'\"") > 1
\ && line("'\"") <= line("$")
\ | exe "normal! g'\"" | endif
"}}}
"===============================================================================
" Plugins
"===============================================================================
"{{{ tasklist.vim 任务列表插件
let g:tlTokenList = ["FIXME", "TODO", "HACK", "NOTE", "WARN", "MODIFY"]
"}}}
"===============================================================================
" Key Binding
"===============================================================================
" {{{映射快捷键
" vim 开发
nnoremap ,sv :source $MYVIMRC<cr> " 刷新vim配置
nnoremap ,ev :vsplit $MYVIMRC<cr> " 分割窗口打开vim配置
" 编辑相关
inoremap jk <esc> " 编辑模式下按jk等价于按ESC键, 非常高效
nnoremap Q :q<CR> " 命令模式下,输入Q,退出Vim
" 窗口间移动
nnoremap <C-j> <C-W>j
nnoremap <C-k> <C-W>k
nnoremap <C-h> <C-W>h
nnoremap <C-l> <C-W>l
" 插入模式下移动光标
inoremap <C-y> <Up> " 输入模式下,按Ctrl+y移动光标到上一行
inoremap <C-e> <Down> " 输入模式下,按Ctrl+e移动光标到下一行
inoremap <c-h> <left>
inoremap <c-l> <right>
inoremap <c-j> <c-o>gj
inoremap <c-k> <c-o>gk
" 绑定快捷键,默认是 <Leader>t
nnoremap ,td :TaskList<CR>
"===============================================================================
" Source User's Own Setting
"===============================================================================
"{{{ source
if filereadable(expand("~/.vimrc.local"))
source ~/.vimrc.local
endif
"}}}
" 目录树快捷键
" 打开目录树
map <F8> :NERDTree<cr>
" 关闭目录树
map <F9> :NERDTreeClose<cr>