vim 常用配置 及 常用 命令

来源:互联网 发布:java动态代理详解 编辑:程序博客网 时间:2024/04/29 13:59

在 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 shiftwidth=4                "设定>命令移动时宽度为4,sw

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 formatoptions=tcqro         "使得注释换行时自动加上前面的的 // 注释符


"--------------------- 个人 配置 ------------------

"设置命令行和状态栏
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

"用 ctrl+v 组合键,添加 如下 信息:
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:移动光标到屏幕下面

`.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。













===========================================



原创粉丝点击