vim 常用配置 及 常用 命令
在 ubuntu下 ,一般 有 两个 地方 可以 配置 vim 编辑器:
1、 修改 /etc/vim/vimrc ,将会 对 所有用户 起作用。
2、修改 /home/test/.vimrc ,只对 test 用户 起作用。
--------------------------------------------------
vim 语法:
1、在 vim配置文件里,用 " 作为 行 注释符号,可以放在 一行的 任何位置。
2、配置 文件 的 结尾 绝对 不能 有 注释,最好 用 set nu 类似的 结尾;
"========================== 常用 vim 配置 =====================
”1.基本设置:
set nu "显示行号
set nonu "不显示行号,默认
set ic "查找时不考虑大小写
set noic "查找时考虑大小写,默认
set hlsearch " 搜索时高亮显示被找到的字符,hls
set mouse=a "设定在任何模式下鼠标都可用,相当于 光标 跟在 鼠标走,副作用是 :选中该项 将无法用鼠标复制,鼠标 将失去的 右键的 复制功能
set tabstop=4 "设置tab长度为4,默认为8,ts
set expandtab "编辑时将所有 Tab 替换为空格,et
"注:该选项只在编辑时将 Tab 替换为空格, 如果打开一个已经存在的文件, 并不会将已有的 Tab 替换为空格。 如果希望进行这样的替换的话, 可以使用这条命令“:retab”。
set softtabstop=4 "使得按退格键时可以一次删除4个空格
set autoindent "自动缩进,默认 打开
”在 默认 情况下 vim 打开了 “自动缩进” 功能,当 粘贴代码时常常会出现版式混乱的现象。 那是因为 终端 并不知道你现在正在粘贴代码, 它直接将 “粘贴”动作向 vim 解释为键入, 因此 vim 便按照设置的自动缩进格式为你的代码调整了缩进。 不幸的是, 粘贴进去的代码中本身已经包含了缩进, 因此便出现了版式混乱的情况。 在 gvim 中就不会出现这个问题, 因为它能够知道你现在正在粘贴。
" 知道了这个症状的来由, 解决方案也就显而易见了: 在粘贴的时候把所有自动缩进都关闭, 粘贴完毕之后再打开。 一个个手工关闭自动缩进未免过于繁琐, vim 为我们提供了一个很好用的命令, 只要输入“:set paste”, 就可以关闭所有自动缩进。 粘贴完毕后再输入“:set
nopaste”就可以重新打开原有的自动缩进设置了。
"set nowrap "指定不折行,如果一行太长, 超过屏幕宽度, 则向右边延伸到屏幕外面
set wrap "自动换行显示,默认方式
"在你编辑你的电子邮件或者其他有段落的文本时,你可能会发现使用方向键和你预期的效果不一样,有时候可能会一次跳过了很多行。这是因为你的段落在 VIM 看来是一个大的长长的行。这时你可以在按 h、j、k 或者 l 之前键入一个 g,这样 VIM 就会按屏幕上面的行如你所愿的移动了
"--------------------- 个人 配置 ------------------
"设置命令行和状态栏
set cmdheight=1 "设定命令行的行数为1
set laststatus=2 "显示状态栏(默认值为1,无法显示状态栏,为2时显示状态栏)
set ruler "标尺信息,显示当前光标的坐标,这一步 需要设置 ”显示状态栏“,才能看到效果
set statusline=%F%m%r\ ASCII=\%b,HEX=\%B,%l,%c%V\ %L-%p%%
"设置在状态行显示的信息如下:
" %F 当前文件名
" %m 当前文件修改状态
" %r 当前文件是否只读
" %Y 当前文件类型
" %{&fileformat} 当前文件编码
" %b 当前光标处字符的ASCII码值
" %B 当前光标处字符的十六进制值
" %l 当前光标行号
" %c 当前光标列号
" %V 当前光标虚拟列号(根据字符所占字节数计算)
" %p 当前行占总行数的百分比
" %% 百分号
" %L 当前文件总行数
"获取当前文件名
function GetFileName()
return bufname(winbufnr(winnr())) "获取当前窗口缓冲区的名字
endfunction
"获取当前时间,精确到分
function GetDateTime()
return strftime("%Y-%m-%d %H:%M")
endfunction
"恢复文件关闭之前光标位置
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
nmap <C-V> i/************************************************************<CR>
\<CR>******* * Function : <CR>
\<CR>******* * Time : ZaiLang<CR>
\<CR>******* * Author : <C-R>=GetDateTime()<ESC> <CR>
\<CR>***************************************************************/<CR><ESC>kkkkkkklllllllllllllllllllllllllli
“========================= 以下 是 我的 常用 命令 =====================================
w:光标往前移动一个词。
b:光标往后移动一个词。
0:移动光标到当前行首。
^:移动光标到当前行的第一个字母位置。
$:移动光标到行尾。
<C-F>:向下移动一屏。
<C-B>:向上移动一屏。
G:到文件尾
numG:移动光标到指定的行(num)。(比如 10G 就是到第 10 行)
gg:到文件首
H:移动光标到屏幕上面
M:移动光标到屏幕中间
L:移动光标到屏幕下面
`.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。
===========================================