生产工具之——我的vim配置
~/.vimrc文件配置" 按键映射map J 5jmap K 5kmap H 7hmap L 7linoremap jj <esc>set clipboard+=unnamed" 与vim共享剪切板setlocal noswapfile " 不要生成swap文件set bufhidden=hide " 当buffer被丢弃的时候隐藏它colorscheme evening " 设定配
·
~/.vimrc文件配置
" 按键映射
map J 5j
map K 5k
map H 7h
map L 7l
inoremap jj <esc>
set clipboard+=unnamed " 与vim共享剪切板
syntax on " 高亮显示
syntax enable
" colorscheme molokai " 设置主题为molokai
colorscheme evening " 设定配色方案
set guifont=Consolas:h15 " 设置字体和字体大小
set number " 显示行号
set cursorline " 突出显示当前行
set ruler " 打开状态栏标尺
set t_Co=256 " 启用256色
set showmatch " 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号
set ruler " 在状态栏显示光标的当前位置(位于哪一行哪一列)
set hlsearch " 设置高亮显示搜索字符串
set tabstop=4 " 设置软制表符宽度为4
set softtabstop=4 " 设置软制表符宽度为4
set shiftwidth=4 " 设置缩进的空格数为4
set autoindent " 设置自动缩进:即每行的缩进值与上一行相等
set smartindent " 开启新行时使用智能自动缩进
set expandtab " 空格代替制表符
set cindent " 使用 C/C++ 语言的自动缩进方式
set foldenable " 开始折叠
set foldmethod=syntax " 设置语法折叠
set foldcolumn=0 " 设置折叠区域的宽度
setlocal foldlevel=9999 " 设置折叠层数为 1
nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> " 用空格键来开关折叠
set autochdir " 自动切换当前目录为当前文件所在的目录
set backupcopy=yes " 设置备份时的行为为覆盖
set matchtime=2 " 短暂跳转到匹配括号的时间
set nobackup " 取消备份文件 默认情况下,文件保存时,会额外创建一个备份文件,它的文件名是在原文件名的末尾,再添加一个波浪号~
setlocal noswapfile " 不创建交换文件。交换文件主要用于系统崩溃时恢复文件,文件名的开头是.、结尾是.swp
set noundofile " 取消生成un文件
set magic " 设置魔术
set backspace=indent,eol,start " 不设定在插入状态无法用退格键和 Delete 键删除回车符
set cmdheight=1 " 设定命令行的行数为 1
set laststatus=2 " 显示状态栏:默认值为 1, 无法显示状态栏
set showmode " 在底部显示,当前处于命令模式还是插入模式
set showcmd " 命令模式下,在底部显示,当前键入的指令。比如输入快捷键将在底部显示具体命令
set noerrorbells
.bashrc配置
PS1="${debian_chroot:+($debian_chroot)}\[\033[01;31m\][\T]\[\033[00m\]\[\033[01;32m\][\u]\[\033[00m\]\[\033[01;33m\][\#]\[\033[00m\]:\[\033[01;34m\]\w\[\e[1:44m\]\n\$ \[\033[00m\]"
常用操作
按键 | 意义
- | -
基本操作 |
jkhl | 下上左右
^ | 跳到行首
$ | 跳到行末
0 | 跳到行首(更好敲
)
g_ | 跳到行末(更好敲
)
u | undo
. | redo
ctrl + r | redo——重复上一个动作
ctrl + n | 在插入模式下,自动补全功能
Ncommand | 重复某个命令N次(例如:100iabcd,会执行100遍iabcd,即写100遍abcd)
:!command | 不退出vim下执行命令
搜索替换 |
/word | 搜索word
n 、 N | 上一个 、 下一个
:n1,n2s/word1/word2/g | [n1,n2]行之间的word1替换成word2:1,$s/word1/word2/g
或者:%s/word1/word2/g
| 从第一行到最后一行word1换成word2:1,$s/word1/word2/gc
或者:%s/word1/word2/gc
| 从第一行到最后一行word1换成word2,且在取代之前显示提示字符让用户确认(按y确认):n1,n2s/^/#/g
| 在[n1,n2]行前面加上 # (批量加注释):n1,n2s/#//g
| 在[n1,n2]行前面删掉#
文本编辑 |
v | 进入编辑模式(普通选中模式)
ctrl + v | 进入编辑模式(块操作模式)(竖着选中)
I (大写的 i )| 在块选择下,在前插入
A | 在块选择下,最后面追加插入
$ | 对选择块的每行的末尾(每行末尾可能不在一个竖线上)
录制宏操作 |
qa | 开始录制
q | 结束录制
ctrl + a | 给光标处的数(连续的数字)增加1
@a | 重复录制的操作(重复100遍就是100@a)
g 和 %
- :g
- global,全局的
- 用于正则匹配
- 用法
# 一般格式: :[range]g/pattern/cmd # 对range内所有符合pattern的行执行cmd # 删除包含某个Pattern的行 :g/pattern/d # 删除不包含某个Pattern的行 :g!/pattern/d 或者 v/pattern/d # 替换 s/parttern/replacement/ # 开始的g是全局命令:对所有与地址匹配的行进行改变;结尾的g是一个标志:改变一行上的每个 g/parttern/s/parttern/replacement/g
- linux中grep = g/rep/p
- :%
- 代表对文件的每一行
- % = g/.*/
- 用法:
# 一般格式
例子1 写入自增1到100
对于只有一个1的文本:
输入 qayyp<C-a>q #完成录制
输入 98@a #完成重复
例子2 空格和换行替换
# 空格(一个或多个)替换成换行
:%s/ +/\r/g
# 上面有个空格
# %s :在整个文件范围查找替换
# / :分隔符
# + :匹配空格,其中“ ”表示空格,+表示重复1次或多次,加在一起表示一个或多个空格。
# /r :换行符(这里只能用\r不能用\n)
# /g :全局替换
# 换行替换成空格
:%s/\n/ /g
# 这里只能用\n,不能用\r
NOTE:上面一个是\r匹配,一个是\n匹配
\n 、 \r 、 \r\n 的区
- \n
换行
光标移动到当前位置的下一行,不会回到行首 - \r
回车
光标移动到当前行的行首
- windows中:
- 每行结尾是回车+换行(\r\n)
- linux中:
- 每行结尾只有换行(\n)
- \n 是linux的结束符,所以查找时使用 \n 来匹配
例子3 把空行删除
:g/^$/d
更多推荐
所有评论(0)