1.vim的配置
1.1 vim配置
配置修改vimrc即可,在windows操作系统下是_vimrc,在linux下是.vimrc。
至于vimrc的位置,参考这里http://easwy.com/blog/archives/where-is-vimrc/
system vimrc file: “$VIM\vimrc”
user vimrc file: “$HOME_vimrc”
2nd user vimrc file: “$VIM_vimrc”
user exrc file: “$HOME_exrc”
2nd user exrc file: “$VIM_exrc”
system gvimrc file: “$VIM\gvimrc”
user gvimrc file: “$HOME_gvimrc”
2nd user gvimrc file: “$VIM_gvimrc”
一般我的vimrc配置如下,无图片
主题使用的是solarized
1.2 gvim配置相关
1.2.1 中文乱码问题
找到_vimrc文件,在开始部分增加如下代码
set encoding=utf-8
"解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"解决consle输出乱码
language messages zh_CN.utf-8
1.2.2 默认多标签打开文件
windows下若是"双击"打开方式,则可以修改注册表
HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command将其键值
修改为:“D:\Program Files\Vim\vim73\gvim.exe” -p --remote-tab-silent “%1”
其中,“D:\Program Files\Vim”是我安装Vim的路径,注意根据实际修改。
而若是用鼠标右键中的"用vim编辑",先删掉注册表中的
HKEY_CLASSES_ROOT*\shellex\ContextMenuHandlers\gvim,然后手工添加鼠标右键菜单
直接进入注册表,在HKEY_CLASSES_ROOT*\shell下添加项"Edit with gVim",
再在项"Edit with gVim"下添加子项"command",在其右边窗口把其键值设定为上述键值
1.3 vim插件介绍
Linux Vim pydiction
Pydiction 可以是我们使用Tab键自动补全Python代码在Vim,是一款非常不错的插件。
1.4 其他
设置根目录为home目录,.vimrc里加入下面一段
export HOME=/home
2. vim使用技巧
2.1 vim分屏技巧
1.vim水平分屏的使用 :vim -on file1 file2 …其中:
o(是小写字母o,不是数字零)n(表示你要分屏的文件个数)
filen(文件名多个文件用空格分开)
2.我用两个文件做测试想到上面那个文件用:ctrl + w + k
想到下面的文件用:ctrl + w + j
当然你懒的话可以用:ctrl + w + w
最后要说明的是在单个文件可以进行的操作都可以在分屏文件里面进行操作
3.在水平分屏好的文件中在打开别的文件:sp filename
4.vim垂直分屏:vim -On file1 file2 …
其中:O(是大写字母O,不是数字零)n(表示你要分屏的文件个数)
filen(文件名多个文件用空格分开)
5.想到左面那个文件用:ctrl + w + h
想到右面的文件用:ctrl + w + l
最后要说明的是在单个文件可以进行的操作都可以在分屏文件里面进行操作
6.在垂直分屏好的文件中在打开别的文件:vsp filename
3. vim常用命令汇总
3.1 字符串操作
批量字符串替换
"全局替换
:%s/源字符串/目的字符串/g
"替换时提醒
:%s/源字符串/目的字符串/gc
"替换指定起始行
:<start,end>s/源字符串/目的字符串/g
"删除固定字符串的所有行
:g/str/d
vim中统计字符串出现的次数
"统计m到n行中"字符串"出现的次数.
"应用的时候只需要修改m,n的值和"字符串"替换为待统计的字符串即可
:m,ns/\<字符串\>//gn
统计"字符串"在当前编辑文件出现的次数
:%s/字符串//ng
统计词语在文件中出现的行数
:cat file|grep -i 字符串 |wc -l
3.2 跳转
"两种方法
ctrl+^
"或者
"使用":buffers"看一下是在处在第几个buffer上面,回车键后,如想跳到"buffer1",直接使用":b1",回车键后即可跳到buffer1上面
行间跳转
"游标移动到第 n 行(如果默认没有显示行号,请先进入命令模式,输入:set nu以显示行号)
nG
"游标移动到到第一行
gg
"到最后一行
G
"游标移动到下j行
nj
"游标移动到上j行
nk
行内跳转
"到下一个单词的开头
w
"到当前单词的结尾
e
"到前一个单词的开头
b
"到前一个单词的结尾
ge
"到行头
0或^
"到行尾
$
"向后搜索<字母>并跳转到第一个匹配的位置(非常实用)
f<字母>
"向前搜索<字母>并跳转到第一个匹配的位置
F<字母>
"向后搜索<字母>并跳转到第一个匹配位置之前的一个字母(不常用)
t<字母>
"向前搜索<字母>并跳转到第一个匹配位置之后的一个字母(不常用)
T<字母>
其他有趣的链接
Stanford phd的一个个人链接
Vim Shortcuts & Cheatsheet
3.3 复制粘贴
3.3.1 剪切(删除)
// 首先,可以在命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了。
// 其他命令模式下剪切命令:
dd:// 剪切当前行
ndd://n表示大于1的数字,剪切n行
dw:// 从光标处剪切至一个单子/单词的末尾,包括空格
de:// 从光标处剪切至一个单子/单词的末尾,不包括空格
d$:// 从当前光标剪切到行末
d0:// 从当前光标位置(不包括光标位置)剪切之行首
d3l:// 从光标位置(包括光标位置)向右剪切3个字符
d5G:// 将当前行(包括当前行)至第5行(不包括它)剪切
d3B:// 从当前光标位置(不包括光标位置)反向剪切3个单词
dH:// 剪切从当前行至所显示屏幕顶行的全部行
dM:// 剪切从当前行至命令M所指定行的全部行
dL://剪切从当前行至所显示屏幕底的全部行
3.3.2 复制
// 首先,可以在命令模式下输入v进入自由选取模式,选择需要剪切的文字后,按下d就可以进行剪切了。
// 其他命令模式下剪切命令:
yy:// 复制当前行
nyy:// n表示大于1的数字,复制n行
yw:// 从光标处复制至一个单子/单词的末尾,包括空格
ye:// 从光标处复制至一个单子/单词的末尾,不包括空格
y$:// 从当前光标复制到行末
y0:// 从当前光标位置(不包括光标位置)复制之行首
y3l:// 从光标位置(包括光标位置)向右复制3个字符
y5G:// 将当前行(包括当前行)至第5行(不包括它)复制
y3B:// 从当前光标位置(不包括光标位置)反向复制3个单词
3.4 合并操作
s: 先删除光标下的字符,然后进入插入模式
4 Vim对编程语言的支持
4.1 Python
"python
function HeaderPython()
call setline(1, "#!/usr/bin/env python")
call append(1, "# -*- coding: utf-8 -*-")
call append(2, "# Pw @ " . strftime('%Y-%m-%d %T', localtime()))
call append(3, "# Description:")
call append(4, "")
call append(5, "__author__ = 'Jiwen Zheng'")
normal G
normal o
normal o
endf
"tab=4空格
autocmd bufnewfile *.py call HeaderPython()
set tabstop=4
set softtabstop=4
set shiftwidth=4
set noexpandtab
set nu
set autoindent
"shell
function HeaderShell()
call setline(1, "#!/bin/bash")
call append(1, "# Pw @ " . strftime('%Y-%m-%d %T', localtime()))
call append(2, "# author: 郑集文")
normal G
normal o
endf
autocmd bufnewfile *.sh call HeaderShell()
通过上述配置,可以实现在新建py文件里开头的一些说明
python语言的补全
参考这篇文章如何启用vim自带python自动补全功能,大概意思是安装 ‘Python omni complete’ plugin.