vim编辑器

vim编辑器

-rw-r--r--. 1 root root 1982 8月   2 2017 /etc/virc        vi 配置文件
-rw-r--r--. 1 root root 1982 8月   2 2017 /etc/vimrc       vim 全局配置文件
-rw-r--r--. 1 root root 1982 8月   2 2017 ~/.vimrc         vim 用户配置文件,默认没有,须要手工创建
source ~/.vimrc 让配置文件当即生效,source 可用(.)代替,如 . /etc/vimrc
:q!   放弃修改,所用用户可用
:wq!  当没有写入权限时强制写入,只有 root 可用。
:wq   保存退出
ZZ    保存退出

插入快捷键

a  在光标所在字符后插入
A  插入光标所在行行尾
i  在光标所在字符前插入
I  插入光标所在行行首
o  在光标下插入新行
O  在光标上插入新行

光标移动快捷键

H  向左     gg 移动到文件头
L  向右     G  移动到文件尾
J  向下     ^  移到行首
K  向上     $  移到行尾

删除操做

x      删除单个字符
nx     删除 n 个字符 dw 删除光标后一个字符串
dd     删除单行 D  光标后删除到行尾
ndd    删除单行
:m,nd  从 m 行删除到 n 行
dG     从光标所在行删除到文件尾
C      当前位置删除到行尾,且打开编辑模式
dw     当前位置删除一个字符串

粘贴复制

yy         复制
nyy        复制 n 行
p          粘贴到光标下一行
P          粘贴到光标上一行
u          撤销
ctrl+r     反撤销
r          替换当前光标位置字符
R          从光标位置开始替换,ESC 键结束
/          查找,n 下一个,N 上一个,
:noh       取消查找后的高亮
:r! 命令   把命令结果写在光标所在行
:r /etc/passwd 把/etc/passwd 文件内容载入到当前编辑的文件中

替换

:1,10s/old/new/g      把 1 到 10 行的 old 替换为 new
:%s/old/new/g         把全文的 old 替换为 new(%表明全文)
:1,10s/^/#/g          在 1 到 10 行的行首加入#

辅助操做

1) 显示行号  :set nu
:set nonu
2) 颜色开关 :syntax off
:syntax on
3) 快捷键 :map ^P I#<ESC> 当按下 ctrl+p,在行首加入“#” “^P”须要 ctrl+V+P 输入
:map ^B ^x 当按下 ctrl+b,删除行首的一个字母,用于删除注释
4) 替换
:ab 原字符  目标字符
:ab abc ABC1234@qq.com

vim自定义设置

       能够选择须要的功能添加至 ~/.vimrc 打开注释使之生效。java

" 让 vim 关闭全部扩展的功能,尽可能模拟 vi 的行为。
set nocompatible
" 突出显示当前行,即横线
set cursorline
" 隐藏工具栏
set guioptions-=T
" 隐藏菜单栏
set guioptions-=m
" 设置在状态行显示的信息
set foldcolumn=0
" 语法高亮
set syntax=on
" 去掉输入错误的提示声音
set noeb
" Tab键的宽度
set tabstop=4
" 统一缩进为4
set softtabstop=4
" 历史记录数
set history=1000
" 禁止生成临时文件
set nobackup
" 禁止生成临时文件
set noswapfile
" 搜索忽略大小写
set ignorecase
" 搜索逐字符高亮
set hlsearch
" 输入搜索内容时就显示搜索结果
set incsearch
" 高亮显示匹配的括号
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=1
" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3

"新建.c,.h,.sh,.java文件,自动插入文件头
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()"
func SetTitle()
    if &filetype == 'sh'
        call setline(1, "#!/bin/bash")
        call append(line("."), "# File Name: ".expand("%"))
        call append(line(".")+1, "# Intro: *****")
        call append(line(".")+2, "# mail: *****@163.com")
        call append(line(".")+3, "# Created Time: ".strftime("%c"))
        call append(line(".")+4, "#-------------------------------")
        call append(line(".")+5, "")
    else
        call setline(1, "/*************************************************************************")
        call append(line("."), "    > File Name: ".expand("%"))
        call append(line(".")+1, "  > Intro: *****")
        call append(line(".")+2, "  > Mail: *****@163.com")
        call append(line(".")+3, "  > Created Time: ".strftime("%c"))
        call append(line(".")+4, " ************************************************************************/")
        call append(line(".")+5, "")
    endif
    if &filetype == 'cpp'
        call append(line(".")+6, "#include<iostream>")
        call append(line(".")+7, "using namespace std;")
        call append(line(".")+8, "")
    endif
    if &filetype == 'c'
        call append(line(".")+6, "#include<stdio.h>")
        call append(line(".")+7, "")
    endif
endfunc
" 新建文件后,自动定位到文件末尾
autocmd BufNewFile * normal G
相关文章
相关标签/搜索