vim的学习总结

vim的学习总结

光标移动
代码作用
h向左一个字符
j向下一行
k向上一行
l向右一个字符
ctrl+f屏幕向下翻页
ctrl+b屏幕向上翻页
ctrl+d屏幕向下翻半页
ctrl+u屏幕向上翻半页
0开始界面
$最后字符
复制操作
小写“yy”复制单行;
2yy 复制光标处2行;
nyy 复制光标出n行。
粘贴操作
小写“p”粘贴到当前光标的下一行;
大写“P”粘贴到当前光标的下一行;
删除操作
“dd”删除当前行
“2dd”删除光标处当前两行;
增行操作open
小写“o”,在当前光标处的下一行插入空行;
大写“o”,在当前光标处的上一行插入空行;
查找操作
作用:查找包含关键字的行;

在命令模式下输入“/查找对象”,即可从上往下查找,按n查找(next);

在命令模式下输入“?查找对象”,即可从上往下查找,按n查找(next);
替换操作
行替换:s/被替换对象/新对象/gc,提示后按y即完成替换。

全文替换:%s/被替换对象/新对象/gc,分别按行提示后按y即完成替换。
vim中的查找替换

关于在vim中的查找和替换:https://www.cnblogs.com/huxinga/p/7942194.html

初始模式为normal模式

/test enter			其中n表示向下查找,N表示向上查找.
/vim$				匹配行尾的"vim",支持正则表达式
/vim\$				转义字符取消正则表达式.
/test\c				表示查找的时候对于大小写不敏感
*					查找当前单词
g*					查找含有指定单词的字符
:s/foo/bar/g		本行中替换foo为bar
:%s/foo/bar/g		本文中替换foo为bar
:.,+2s/foo/bar/g	当前行.与接下来两行+2:
:%s/foo/bar/gc		对应的替换需要确认
/word  				向下查找word的字符串
?word2  			向上查找word2的字符串
下一个与上一个用n与N。
:1,29s/word1/word2/g  替换word1为word2.
:1,$s/word1/word2/gc  替换word1为word2.
操作的撤销与恢复

备注:无论是u撤销,还是ctrl+r恢复,前提要是文件不能执行了保存。

小写u:change before(按行,分步骤以时间轴为单位撤销最近的动作)直至already at oldest change(可撤销多步);

大写U:仅撤销一步操作;

Ctrl+r:change after (按行,分步骤以时间轴为单位恢复被撤销的动作)直至already at oldest change;

Ctrl+R:恢复被撤销的,一步到底;
vim 代码缩进

参考链接:https://blog.csdn.net/topasstem8/article/details/6678215

  1. 特定行缩进
    按v进入visual状态,选择多行,用>或<缩进或缩出。

  2. 通常根据语言特征使用自动缩进排版:在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行。使用gg=G可对整篇代码进行排版。

vim 剪切板

"+yy // 复制当前行到剪切板

"+p // 将剪切板内容粘贴到光标后面\

参考:https://www.cnblogs.com/callmelord/p/11579646.html

关于系统剪切板和vim内部剪切板的关系
let mapleader="'"

所以对应的复制方法为v进入可视化模式,按钮左右箭头选中,按钮'y复制,出来ctrl + v黏贴。

vim插件配置

插件安装

源码安装vim,需要的步骤是:安装依赖库,下载源码安装.

sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \
    libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \
    libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \
    python3-dev ruby-dev lua5.1 lua5.1-dev git
git clone https://github.com/vim/vim.git
cd vim
./configure --with-features=huge \
            --enable-multibyte \
            --enable-rubyinterp \
            --enable-pythoninterp \
            --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu \
            --enable-perlinterp \
            --enable-luainterp \
            --enable-gui=gtk2 --enable-cscope --prefix=/usr
make VIMRUNTIMEDIR=/usr/share/vim/vim80
sudo make install
vim 
:version  #测试是否支持python

插件安装

vundle: vim插件管理安装之错误总结

youcompleteme安装

cd .vim/bundle/YouCompleteMe/
sudo apt install build-essential cmake python3-dev
git submodule update --init --recursive
python3 install.py --all

AttributeError: ‘module’ object has no attribute ‘FlagsForFile’

cd ~/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/clang/testdata
cp .ycm_extra_conf.py  ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/

vim81->vim80,按照说明解决缺少的文件,得按要求重新安装yum,readme.

目前使用的C程序vimrc设置

"设置行号
set number

"打开语法高亮
syntax on

"显示当前键入的指令
set showcmd

"使用utf-8编码
set encoding=utf-8

"启用256色
set t_Co=256

"打开文件类型检查对应缩进
filetype indent on

"设置自动缩进
set autoindent

"光标所在的当前行高亮
set cursorline

"在状态栏显示光标的当前位置
set  ruler

"搜索时,高亮显示匹配结果
set hlsearch

"光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号。
set showmatch

"命令模式下,底部操作指令按下 Tab 键自动补全
set wildmenu
set wildmode=longest:list,full
" 开启文件类型侦测
filetype on

" 根据侦测到的不同类型加载对应的插件
filetype plugin on

" 自动缩进
filetype indent on

" 开启语法高亮功能
syntax enable

set incsearch
"开启实时搜索功能

set ignorecase
"搜索忽略大小写

set wildmenu
"vim命令自动补全

set gcr=a:block-blinkon0 "禁止关闭闪烁

set laststatus=2 "总是显示状态栏

set ruler "显示光标位置

set number "显示行号

set cursorline "高亮显示当前行

"set cursorcolumn "高亮显示当前列

set hlsearch "高亮显示搜索结果

" 将制表符扩展为空格
set expandtab

" 设置编辑时制表符占用空格数
set tabstop=4

" 基于缩进或语法进行代码折叠
set foldmethod=syntax

set nofoldenable
" 启动 vim 时关闭折叠代码

" 定义快捷键的前缀,即<Leader>
"let mapleader="\<space>"
let mapleader="'"

" 设置快捷键将选中文本块复制至系统剪贴板
vnoremap <Leader>y "+y

" 设置快捷键将系统剪贴板内容粘贴至 vim
nmap <Leader>p "+p

" ************** 插件管理与设置 ************ "

" vundle 环境设置
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
" vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'Lokaltog/vim-powerline' "status 美化
Plugin 'octol/vim-cpp-enhanced-highlight' "对c++语法高亮增强
Plugin 'kshenoy/vim-signature' "书签可视化的插件
Plugin 'vim-scripts/BOOKMARKS--Mark-and-Highlight-Full-Lines' "书签行高亮
Plugin 'majutsushi/tagbar' "taglist的增强版,查看标签,依赖于ctags
Plugin 'scrooloose/nerdcommenter' "多行注释,leader键+cc生成, leader+cu删除注释
Plugin 'scrooloose/nerdtree' "文件浏览
"Plugin 'Valloric/YouCompleteMe' "自动补全
Plugin 'kien/ctrlp.vim' "搜索历史打开文件,在命令行模式下按ctrl+p触发
Plugin 'vim-scripts/grep.vim' "在命令行模式使用grep命令,:Grep
Plugin 'Lokaltog/vim-easymotion' "快速跳转,按两下leader键和f组合
Plugin 'vim-scripts/ShowTrailingWhitespace.git' "高亮显示行尾的多余空白字符
Plugin 'vim-scripts/indentpython.vim.git'
Plugin 'vim-scripts/Solarized.git' "主题方案
Plugin 'nathanaelkane/vim-indent-guides.git' "缩进对齐显示
"Plugin 'vim-scripts/indexer.tar.gz' "自动生成标签
"Plugin 'vim-scripts/DfrankUtil' "indexer 依赖
"Plugin 'vim-scripts/vimprj' "indexer 依赖
Plugin 'davidhalter/jedi-vim' "python 补全,不依赖于tags,但比较慢,可以使用indexer替换,但不能跳转项目外
Plugin 'vim-scripts/Markdown'
Plugin 'tpope/vim-surround'
Plugin 'ekalinin/Dockerfile.vim'
" 插件列表结束
call vundle#end()
filetype on

快捷键图片

vim键盘图

参考文献

  1. 54.[ubuntu]自己编译安装vim 8.0的方法
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值