vim总结

记录vim使用过程中遇到的问题和小tip。

安装

centos升级vim

1
2
3
rpm -qa | grep vim  
yum remove vim vim-enhanced vim-common vim-minimal
yum -y install vim*

窗口外观

文件操作

1
2
3
4
5
6
7
" 跳转当前光标所对应的文档
gf
" 从跳转的文档回退
<C-o>
" 从跳转的文档回退
:bf

键盘映射

将 CapsLock 键映射成 Esc键

1.linux系统下,在~/.profile文件里添加

1
xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'

2.windows系统下,将下面代码保存为 capslock2esc.reg:
1
2
3
4
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,3a,00,01,00,01,00,3a,00,00,00,00,00

然后双击写入注册表,重启系统。

参考
Vim技巧——将 CapsLock 键映射成 Esc键

gvim相关

1
2
3
4
5
6
" 设置gvim在window下窗口最大化
autocmd GUIEnter * simalt ~x

" gvim nerdtree 切换盘符
:NERDTREE D:\

你应该知道的10个vim小技巧

我想你应该知道下面10条vim的小技巧

1. 星号*和井号#

在normal模式下,可以使用*#查找当前光标位置的单词。*是向前查找,#是向后查找。

2. 在任何文档中简单补全

在插入模式使用<C-n><C-p>即可在当前文档中查找单词进行补全。<C-n>向后查找单词,<C-p>向前查找。

3. .

输入.重复上一次改动。

4. %

在编程中,常需要匹配括号。此时可以使用%键在2个括号上来回跳动。

5. 使用===对代码做缩进

对于单行代码缩进,可以在normal模式下,使用==缩进代码。
需要缩进多行代码,可以使用visual模式,选择代码,再使用=进行缩进。

git总结

子模块使用

使用hexo时候,主题和Blog分为2个项目,Blog依赖主题。于是使用子模块分开管理。

添加子模块

1
2
cd ~/xiaoyu5256.github.io
git submodule add git@github.com:xiaoyu5256/hexo-theme-next.git themes/next

更新子模块

克隆blog项目,查看目录下的themes/next,这时,themes/next下为空。
执行:

1
2
git submodule init
git submodule update

或者
1
git submodule update --init --recursive

VMWare调整硬盘类别和大小

调整硬盘类别

建立虚拟机选择了硬盘类别为预分配后,发现物理硬盘占用太大,于是调整为自增长的类别。步骤如下:
1.打开cmd,切换到VMware Workstation安装目录。
2.执行vmware-vdiskmanager -r "D:\vm\CENTOS6.6模板\CENTOS6.6模板_3.vmdk" -t 0 "D:\vm\CENTOS6.6模板\CENTOS6.6模板_new.vmdk"
3.将CENTOS6.6模板_new.vmdk修改成CENTOS6.6模板_3.vmdk

调整CentOS磁盘大小

虚拟机使用一段时间后,发现磁盘大小不够用,做扩容,步骤如下:
1.在虚拟机设置里修改磁盘大小,或者使用vmware-vdiskmanager做扩容。
2.打开虚拟机,执行df -h查看硬盘大小,发现磁盘大小未改变。
3.新建磁盘分区,执行fdisk /dev/sda先选p查看分区情况,然后选n,最后选择w保存分区,重启机器。
4.扩展LVM,执行pvcreate "/dev/sda3"vgextend /dev/mapper/VolGroup /dev/sda3,lvextend -L +20G /dev/mapper/VolGroup-lv_root,resize2fs /dev/mapper/VolGroup-lv_root

参考
VMware虚拟机更改硬盘大小之扩大篇

JavaScript模式

第二章 基本技巧


编写可维护的代码

什么是易维护的代码

  • 阅读性好
  • 具有一致性
  • 预见性好
  • 看起来如同一个人编写的
  • 有文档

尽量少用全局变量

链式赋值产生全局变量:

1
2
3
function foo(){
var a=b=0 //b为全局变量
}

delete 问题

1. 通过var声明的全局变量,无法delete
2. 非通过var声明的全局变量,可以delete

单一var模式

只使用一个var在函数顶部定义变量
好处:

1. 提供一个单一的地址,查找所有的局部变量
2. 防止出现变量在定义前就被使用的逻辑错误
3. 帮助牢记要声明的变量,以尽少地使用全局变量
4. 更少地编码