zoukankan      html  css  js  c++  java
  • linux下vim配置以及一些常用的快捷键

    一些常用的vim编辑器快捷键:

    h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。

    按「ctrl」+「b」:屏幕往“后”移动一页。

    按「ctrl」+「f」:屏幕往“前”移动一页。

    按「ctrl」+「u」:屏幕往“后”移动半页。

    按「ctrl」+「d」:屏幕往“前”移动半页。

    按数字「0」:移到文章的开头。

    按「G」:移动到文章的最后。

    按「$」:移动到光标所在行的“行尾”。

    按「^」:移动到光标所在行的“行首”

    按「w」:光标跳到下个字的开头

    按「e」:光标跳到下个字的字尾

    按「b」:光标回到上个字的开头

    按「#l」:光标移到该行的第#个位置,如:5l,56l。

    「x」:每按一次,删除当前字符。

    「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符。

    「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符。

    「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符。

    「dd」:删除光标所在行,并用下一行进行填充。

    「#dd」:从光标所在行开始删除#行。

    「#G」:「15G」,表示移动光标至文章的第15行行首。

    「w」:在冒号输入字母「w」就可以将文件保存起来。

    「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vim。

    「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。

     ZZ 立即保存文件并退出。

    p  粘贴

    u  撤销一次

    ctrl+r 反撤销一次

    多窗口功能:在命令行模式下输入:sp,这样两个文件就可以同时在一个屏幕上显示,然后先按下ctrl + w,然后放开所有按键后,再按下向下箭头键或者向上箭头键就可以进行窗口的选择了,如果要关闭一个窗口,直接 : q 即可。

    我的vimrc文件:

      1 map <F9> :call SaveInputData()<CR>
      2 func! SaveInputData()
      3     exec "tabnew"
      4     exec 'normal "+gP'
      5     exec "w! /tmp/input_data"
      6 endfunc
      7 
      8 
      9 
     10 
     11 "colorscheme torte
     12 "colorscheme murphy
     13 "colorscheme desert 
     14 "colorscheme desert 
     15 "colorscheme elflord
     16 colorscheme ron
     17 
     18 
     19 
     20 
     21 "set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
     22 "set termencoding=utf-8
     23 "set encoding=utf-8
     24 "set fileencodings=ucs-bom,utf-8,cp936
     25 "set fileencoding=utf-8
     26 
     27 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     28 " 显示相关  
     29 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     30 "set shortmess=atI   " 启动的时候不显示那个援助乌干达儿童的提示  
     31 "winpos 5 5          " 设定窗口位置  
     32 "set lines=40 columns=155    " 设定窗口大小  
     33 set go=             " 不要图形按钮  
     34 "color asmanian2     " 设置背景主题  
     35 "set guifont=Courier_New:h10:cANSI   " 设置字体  
     36 "syntax on           " 语法高亮  
     37 autocmd InsertLeave * se nocul  " 用浅色高亮当前行  
     38 autocmd InsertEnter * se cul    " 用浅色高亮当前行  
     39 "set ruler           " 显示标尺  
     40 set showcmd         " 输入的命令显示出来,看的清楚些  
     41 "set cmdheight=1     " 命令行(在状态行下)的高度,设置为1  
     42 "set whichwrap+=<,>,h,l   " 允许backspace和光标键跨越行边界(不建议)  
     43 "set scrolloff=3     " 光标移动到buffer的顶部和底部时保持3行距离  
     44 set novisualbell    " 不要闪烁(不明白)  
     45 set statusline=%F%m%r%h%w [FORMAT=%{&ff}] [TYPE=%Y] [POS=%l,%v][%p%%] %{strftime("%d/%m/%y - %H:%M")}   "状态行显示的内容  
     46 set laststatus=1    " 启动显示状态行(1),总是显示状态行(2)  
     47 set foldenable      " 允许折叠  
     48 set foldmethod=manual   " 手动折叠  
     49 "set background=dark "背景使用黑色 
     50 set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  
     51 " 显示中文帮助
     52 if version >= 603
     53     set helplang=cn
     54     set encoding=utf-8
     55 endif
     56 " 设置配色方案
     57 "colorscheme murphy
     58 "字体 
     59 "if (has("gui_running")) 
     60 "   set guifont=Bitstream Vera Sans Mono 11 
     61 "endif 
     62 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     63 "键盘命令
     64 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     65 
     66 nmap <leader>w :w!<cr>
     67 nmap <leader>f :find<cr>
     68 
     69 " 映射全选+复制 ctrl+a
     70 map <C-A> ggVGY
     71 map! <C-A> <Esc>ggVGY
     72 map <F12> gg=G
     73 " 选中状态下 Ctrl+c 复制
     74 vmap <C-c> "+y
     75 "去空行  
     76 nnoremap <F2> :g/^s*$/d<CR> 
     77 "比较文件  
     78 nnoremap <C-F2> :vert diffsplit 
     79 "新建标签  
     80 map <M-F2> :tabnew<CR>  
     81 "列出当前目录文件  
     82 map <F3> :tabnew .<CR>  
     83 "打开树状文件目录  
     84 map <C-F3> e  
     85 "C,C++ 按F7编译运行
     86 map <F7> :call CompileRunGcc()<CR>
     87 func! CompileRunGcc()
     88     exec "w"
     89     if &filetype == 'c'
     90         exec "!g++ % -o %<"
     91         exec "! ./%<"
     92     elseif &filetype == 'cpp'
     93         exec "!g++ % -o %<"
     94         exec "! ./%<"
     95     elseif &filetype == 'java' 
     96         exec "!javac %" 
     97         exec "!java %<"
     98     elseif &filetype == 'sh'
     99         :!./%
    100     elseif &filetype == 'py'
    101         exec "!python %"
    102         exec "!python %<"
    103     endif
    104 endfunc
    105 "C,C++的调试
    106 map <F5> :call Rungdb()<CR>
    107 func! Rungdb()
    108     exec "w"
    109     exec "!g++ % -g -o %<"
    110     exec "!gdb ./%<"
    111 endfunc
    112 
    113 
    114 
    115 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    116 ""实用设置
    117 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    118 " 设置当文件被改动时自动载入
    119 set autoread
    120 " quickfix模式
    121 autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
    122 "代码补全 
    123 set completeopt=preview,menu 
    124 "允许插件  
    125 filetype plugin on
    126 "共享剪贴板  
    127 set clipboard+=unnamed 
    128 "从不备份  
    129 set nobackup
    130 "make 运行
    131 :set makeprg=g++ -Wall  %
    132 "自动保存
    133 set autowrite
    134 set ruler                   " 打开状态栏标尺
    135 set cursorline              " 突出显示当前行
    136 set magic                   " 设置魔术
    137 set guioptions-=T           " 隐藏工具栏
    138 set guioptions-=m           " 隐藏菜单栏
    139 "set statusline= %<%F[%1*%M%*%n%R%H]%= %y %0(%{&fileformat} %{&encoding} %c:%l/%L%)
    140 " 设置在状态行显示的信息
    141 set foldcolumn=0
    142 set foldmethod=indent 
    143 set foldlevel=3 
    144 set foldenable              " 开始折叠
    145 " 不要使用vi的键盘模式,而是vim自己的
    146 set nocompatible
    147 " 语法高亮
    148 set syntax=on
    149 " 去掉输入错误的提示声音
    150 set noeb
    151 " 在处理未保存或只读文件的时候,弹出确认
    152 set confirm
    153 " 自动缩进
    154 set autoindent
    155 set cindent
    156 " Tab键的宽度
    157 set tabstop=4
    158 " 统一缩进为4
    159 set softtabstop=4
    160 set shiftwidth=4
    161 " 不要用空格代替制表符
    162 set noexpandtab
    163 " 在行和段开始处使用制表符
    164 set smarttab
    165 " 显示行号
    166 set number
    167 " 历史记录数
    168 set history=1000
    169 "禁止生成临时文件
    170 set nobackup
    171 set noswapfile
    172 "搜索逐字符高亮
    173 set hlsearch
    174 set incsearch
    175 "行内替换
    176 set gdefault
    177 "编码设置
    178 set enc=utf-8
    179 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
    180 "语言设置
    181 set langmenu=zh_CN.UTF-8
    182 set helplang=cn
    183 " 我的状态行显示的内容(包括文件类型和解码)
    184 "set statusline=%F%m%r%h%w [FORMAT=%{&ff}] [TYPE=%Y] [POS=%l,%v][%p%%] %{strftime("%d/%m/%y - %H:%M")}
    185 "set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
    186 " 总是显示状态行
    187 set laststatus=2
    188 " 命令行(在状态行下)的高度,默认为1,这里是2
    189 set cmdheight=2
    190 " 侦测文件类型
    191 filetype on
    192 " 载入文件类型插件
    193 filetype plugin on
    194 " 为特定文件类型载入相关缩进文件
    195 filetype indent on
    196 " 保存全局变量
    197 set viminfo+=!
    198 " 带有如下符号的单词不要被换行分割
    199 set iskeyword+=_,$,@,%,#,-
    200 " 字符间插入的像素行数目
    201 set linespace=0
    202 " 增强模式中的命令行自动完成操作
    203 set wildmenu
    204 " 使回格键(backspace)正常处理indent, eol, start等
    205 set backspace=2
    206 " 允许backspace和光标键跨越行边界
    207 set whichwrap+=<,>,h,l
    208 " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
    209 set mouse=a
    210 set selection=exclusive
    211 set selectmode=mouse,key
    212 " 通过使用: commands命令,告诉我们文件的哪一行被改变过
    213 set report=0
    214 " 在被分割的窗口间显示空白,便于阅读
    215 set fillchars=vert: ,stl: ,stlnc:
    216 " 高亮显示匹配的括号
    217 set showmatch
    218 " 匹配括号高亮的时间(单位是十分之一秒)
    219 set matchtime=1
    220 " 光标移动到buffer的顶部和底部时保持3行距离
    221 set scrolloff=3
    222 " 为C程序提供自动缩进
    223 set smartindent
    224 " 高亮显示普通txt文件(需要txt.vim脚本)
    225 au BufRead,BufNewFile *  setfiletype txt
    226 "自动补全
    227 :inoremap ) <c-r>=ClosePair(')')<CR>
    228 ":inoremap { {<CR>}<ESC>O
    229 ":inoremap } <c-r>=ClosePair('}')<CR>
    230 :inoremap ] <c-r>=ClosePair(']')<CR>
    231 function! ClosePair(char)
    232     if getline('.')[col('.') - 1] == a:char
    233         return "<Right>"
    234     else
    235         return a:char
    236     endif
    237 endfunction
    238 filetype plugin indent on 
    239 "打开文件类型检测, 加了这句才可以用智能补全
    240 set completeopt=longest,menu
    241 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    242 
    243 
    244 
    245 
    246 
    247 
    248 "NERDtee设定
    249 let NERDChristmasTree=1
    250 let NERDTreeAutoCenter=1
    251 let NERDTreeBookmarksFile=$VIM.'DataNerdBookmarks.txt'
    252 let NERDTreeMouseMode=2
    253 let NERDTreeShowBookmarks=1
    254 let NERDTreeShowFiles=1
    255 let NERDTreeShowHidden=1
    256 let NERDTreeShowLineNumbers=1
    257 let NERDTreeWinPos='left'
    258 let NERDTreeWinSize=31
    259 nnoremap f :NERDTreeToggle
    260 map <F7> :NERDTree<CR>  
    View Code
  • 相关阅读:
    Avira 去广告
    git 初步使用
    C语言中的取模符号讨论
    查看指定端口的进程
    fuck~disabled form
    编译器相关资源
    scheme 相关资源
    Binary search tree
    各种屏幕(包括手机)尺寸测试工具
    实现一个完整c++11编译器的认证
  • 原文地址:https://www.cnblogs.com/wally/p/3452288.html
Copyright © 2011-2022 走看看