所有由wishcell发布的文章

虚拟机

虚拟机

一、QEMU

二、VIRTUALBOX

三、VmWare

四、VirtualPC

VirtualPC,Vmware目前和将来最强大的竞争对手。
开源站点:http://www.microsoft.com/windowsxp/virtualpc/

五. bochs

历史悠久的X86模拟器(比Vmware还久),也就是原来的Plex86。可运行Windows/Linux/*BSD/DOS,最大的优点是:OpenSource,Free。
开源站点:http://bochs.sourceforge.net/

六、VMips

VMips(指令模拟器)只能支持Mips指令集,有点过时,也有点局限.
开源站点:http://www.dgate.org/vmips/index.shtml

七、SPIM

SPIM,spim提供了一个更好的用户界面,并且能够运行在Unix/Windows/Dos下,同样完整地实现了MIPS R3000指令集,图形界面就如同大多数的调试工具一样使用,可以直接读取和解释MIPS R3000汇编指令。
http://pages.cs.wisc.edu/~larus/spim.html

八、PearPC

PearPC -PowerPC 模拟器。
开源站点:http://pearpc.sourceforge.net/

九、dongfeng(developed by chinese)

dongfeng,(developed by chinese)一个正在处于开发阶段的mips功能模拟器,目前发布第一版,代码和功能都比较简单,可以进行思想的学习。
开源站点:http://dongfeng.sourceforge.net/

十、simos

simos,一个非常不错的模拟器,龙芯开发团队使用过的一个mips模拟器。
开源站点:http://simos.stanford.edu/

十一、mips模拟器收藏室

mips模拟器收藏室。该站点收藏了很多mips的模拟器项目.
非常不错:http://www.linux-mips.org/wiki/Emulators</p>

十二、skyeye嵌入式系统模拟器

skyeye嵌入式系统模拟器。这是一个嵌入式系统的模拟器,能够在这个系统中运行uc/os、uclinux,可以模拟ARM7TDMI, ARM720T,StrongARM, XScale, Blackfin CPU核,并且模拟了多种外围设备。这个模拟器诞生在清华大学,在此推荐一下。
开源站点:http://www.skyeye.org/index.shtml

活着就是专利

1、关于专利申请中遇到的事

四五年前我提交了一份专利,本以为流程已经走完,申请成功。

没想到现在又让我继续走流程,因为专利局审查员认为我专利中的各种创新,
都已经被别人申请掉了,技术已经公开。所以我的提案是没有创新性,建议放弃。
凭心而论,此专利为同事帮我出的主意,很多思想都从人家那里来的。
申请专利的目标我也已经达到,本相直接放弃,但是为了表示自己还是做过一点努力,所以就争取了一下。
公司的合作伙伴,代理写专利的公司,人家真是很专业,很快就根据我的描述,重新改版了一份专利申请。
这一次我比之前认真了一点,阅读了专利局评审员的意见。
发现,此专利本来写的就是日常开发中运用到的技术,别的公司也在用。
而别人公开的技术,与我提交的技术,确实吻合度极高。看到这里,我自己心里都有点凉了。
让专利代写公司的同事努力一次,再被评审员驳回的话,就直接放弃

2、感慨

明明是一个技术含量不高的技术,谁想着去写,就变成了谁的技术。
感觉专利这套制度有点跑歪了。
但是没办法,这就是游戏规则。
这样一来,只要想写就能写,一个人活着,每一天几乎都是一份专利

WordPress

因为采用docker方案,将重要的数据通过卷映射,映射到宿主机,中间因为某个权限问题,将整个 /var/www/html 目录,所有权限都设置成了 777: chmod 777 /var/www/html -R
.
   当时问题是解决了,也貌似完美的运行了好多天,今日想卸载/安装控件,却得到提示:

连接信息 
无法连接到文件系统,请确认您的凭据。 
要执行请求的操作,WordPress需要访问您网页服务器的权限。 请输入您的FTP登录凭据以继续。 如果您忘记了您的登录凭据(如用户名、密码),请联系您的网站托管商。

于是赶紧百度一番:
https://blog.csdn.net/aa294194253/article/details/49998677 给出了答案,看来这是一个经常发生的问题。
按其说法,执行操作,逐个尝试。
方法一:验证失败,另外还提示日志文件无权打开
方法二:验证成功
其它方法:未验证

wine

一、安装

sudo yum -y install wine
很快安装完毕

二、启动配置工具

winecfg
但是弹出框没有文字.汉字都是点号

三、能够运行,但是问题多多

直接运行: wine axx.exe
竟然真能跑起来,还是没有汉字,都是点点。

四、按照网上说明,竟然成功搞定

www.360doc.com/content/12/0911/18/44521/235580987.shtml
---->>> 神操作,在PC浏览器无法复制,但是在手机浏览器竟然让我复制了!!!

wine中文乱码的解决方法

新装的wine中文全是乱码,需要修改一下几个配置文件,找到一篇比较详细的配置说明,分享一下:
” wine下中文的配置方案
步骤:

1. 初始设置

运行 winecfg,把模拟的 Windows 系统设置为 Windows XP 或者 Windows 2000。

2. 准备字体

为了让 Windows 应用程序看上去更美观,所以需要 Windows 下面的字体。
由于我已经将 simsun.ttc 复制到 /usr/share/fonts/windows/
目录中了。所以我只需要在 ~/.wine/drive_c/windows/fonts/ 目录中为
simsun.ttc 创建一个符号连接:
cd ~/.wine/drive_c/windows/fonts
ln -s /usr/share/fonts/windows/simsun.ttc simsun.ttc
ln -s /usr/share/fonts/windows/simsun.ttc simfang.ttc
创建一个 simfang.ttc 是许多 Windows 应用默认使用 simfang.ttc 字体。

3. 修改 ~/.wine/system.reg

装好字体后,还要修改一下 Wine 的注册表设置,指定与字体相关的设置:
gedit ~/.wine/system.reg
(一定要使用 gedit 或其他支持 gb2312/utf8
编码的编辑器修改这些文件,否则文件中的中文可能变乱码)
搜索: LogPixels
找到的行应该是:[System\\CurrentControlSet\\Hardware
Profiles\\Current\\Software\\Fonts]
将其中的:
"LogPixels"=dword:00000060
改为:
"LogPixels"=dword:00000070
搜索: FontSubstitutes
找到的行应该是:[Software\\Microsoft\\Windows
NT\\CurrentVersion\\FontSubstitutes]
将其中的:
"MS Shell Dlg"="Tahoma"
"MS Shell Dlg 2″="Tahoma"
改为:
"MS Shell Dlg"="SimSun"
"MS Shell Dlg 2″="SimSun"

4. 修改 ~/.wine/drive_c/windows/win.ini

gedit ~/.wine/drive_c/windows/win.ini
在文件末尾加入:
[Desktop]
menufontsize=13
messagefontsize=13
statusfontsize=13
IconTitleSize=13

5.最关键的一步

网上很多文章中没有提到的一步──把下面的代码保存为zh.reg,然后终端执行regedit
zh.reg。从Windows目录下的Fonts里的simsun.ttc复制到/home/user/.wine/drive_c/windows/fonts里面。
代码:
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
NT\CurrentVersion\FontSubstitutes]
"Arial"="simsun"
"Arial CE,238"="simsun"
"Arial CYR,204"="simsun"
"Arial Greek,161"="simsun"
"Arial TUR,162"="simsun"
"Courier New"="simsun"
"Courier New CE,238"="simsun"
"Courier New CYR,204"="simsun"
"Courier New Greek,161"="simsun"
"Courier New TUR,162"="simsun"
"FixedSys"="simsun"
"Helv"="simsun"
"Helvetica"="simsun"
"MS Sans Serif"="simsun"
"MS Shell Dlg"="simsun"
"MS Shell Dlg 2"="simsun"
"System"="simsun"
"Tahoma"="simsun"
"Times"="simsun"
"Times New Roman CE,238"="simsun"
"Times New Roman CYR,204"="simsun"
"Times New Roman Greek,161"="simsun"
"Times New Roman TUR,162"="simsun"
"Tms Rmn"="simsun"
之后,中文正常显示!

2、linux系统一键安装wine

A、准备好文件,从win7同步 simsun.ttc
B、因为需要分别在 root 和user下面安装,总脚本
# for root install
sudo yum -y install wine && sudo sh cfgFont.sh

# for user install
sh cfgFont.sh

C、核心代码

cfgFont.sh

prepare fonts

cp ./simsun.ttc ~/.wine/drive_c/windows/Fonts/simsun.ttc
cp ./simsun.ttc ~/.wine/drive_c/windows/Fonts/simfang.ttc

setup fonts : ~/.wine/system.reg

#"LogPixels"=dword:00000070
sed -i "/\"LogPixels\"\=dword:00000060/ s/00000060/00000070/" ~/.wine/system.reg

#搜索: FontSubstitutes 找到的行应该是:
#[Software\Microsoft\WindowsNT\CurrentVersion\FontSubstitutes]
#将其中的:
#"MS Shell Dlg"="Tahoma"
#"MS Shell Dlg 2″="Tahoma"
#改为:
#"MS Shell Dlg"="SimSun"
#"MS Shell Dlg 2″="SimSun"
sed -i "/\"MS\ Shell\ Dlg\"\=\"Tahoma\"/ s/Tahoma/SimSun/" ~/.wine/system.reg
sed -i "/\"MS\ Shell\ Dlg\ 2\"\=\"Tahoma\"/ s/Tahoma/SimSun/" ~/.wine/system.reg

#4. 修改 ~/.wine/drive_c/windows/win.ini
#gedit ~/.wine/drive_c/windows/win.ini
#在文件末尾加入:
#[Desktop]
#menufontsize=13
#messagefontsize=13
#statusfontsize=13
#IconTitleSize=13

iniFile=echo ~/.wine/drive_c/windows/win.ini
echo "iniFile is ${iniFile}"
oldStr=sed -n "/[Desktop\]/p" "${iniFile}"
if [[ -z "${oldStr}" ]]; then
sed -i ‘$a[Desktop]’ ${iniFile}
sed -i ‘$amenufontsize=13’ ${iniFile}
sed -i ‘$astatusfontsize=13’ ${iniFile}
sed -i ‘$aIconTitleSize=13’ ${iniFile}
else
echo "[Desktop] font has been set"
fi

#最关键的一步,终端执行regedit zh.reg
regedit zh.reg

### D、注册表文件
```reg
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\FontSubstitutes]
"Arial"="simsun"
"Arial CE,238"="simsun"
"Arial CYR,204"="simsun"
"Arial Greek,161"="simsun"
"Arial TUR,162"="simsun"
"Courier New"="simsun"
"Courier New CE,238"="simsun"
"Courier New CYR,204"="simsun"
"Courier New Greek,161"="simsun"
"Courier New TUR,162"="simsun"
"FixedSys"="simsun"
"Helv"="simsun"
"Helvetica"="simsun"
"MS Sans Serif"="simsun"
"MS Shell Dlg"="simsun"
"MS Shell Dlg 2"="simsun"
"System"="simsun"
"Tahoma"="simsun"
"Times"="simsun"
"Times New Roman CE,238"="simsun"

五、wine大显神威

最让人头疼的是,在linux下面用不了source insight。
只需三四不即可搞定:
wine sourceInsight_setup.exe
然后: wine keygen.exe,报错,用win7中生成的序列号,同样管用。
几分钟搞定

2、wine 运行bat脚本
执行bat脚本:
   wine cmd < ab.bat
进入dos环境:
   wine cmd

六、相关工具

CrossOver 基于 wine,功能更加好用

windows

一、win10添加域账号

https://7dapi7.smartapps.cn/pages/article/article?eid=4853e1e5a244b51909f726f0&oauthType=search&word=windows%2B%E5%B0%86%E6%96%87%E4%BB%B6%E6%9B%B4%E6%94%B9%E6%89%80%E6%9C%89%E4%BA%BA&_swebfr=1

w3m

linux 命令行查看 html 文件

1、安装

yum -y install w3m w3m-img

假如终端不支持中文,需要安装 zhcon
   yum -y install zhcon

2、用法

1、访问网址
w3m www.baidu.com

2、输入文本,与网页交互

然后利用方向键或者 TAP 切换光标位置。
切换到输入框,按下a/i,与 vim 操作雷同,然后 tap 跳到后面的“搜索“框上
下面就会出现TEXT:`key-word`

3、其它常用操作

a、q退出

b、方向控制
与vim常用命令vim常用命令集相似,h,j,k,l 可以分别用来做移动键,分别是左,下,上,右。
如果你熟习vim操作的话这会是很方便的功能。
< 和 > 用来左右滚屏。

c、使用 U 来重新输入需要打开的网址
d、B 返回前一个页面
e、标签操作
多标签操作!
可以使用 T 按键来打开一个新标签。
在多个标签内切换呢? 使用 { 和 }就可以了!
使用 ESC-t 的话会打开标签的菜单让你选择,功能类似系统中的alt-tab功能。
C-q用于关于当前标签页。

f、书签
C-a 添加书签
C-b 查看书签

g、查找
/ 向后查找当前页面
? 向前查找当前页面
n 查找下一个已查找过的关键字
N 向前查找已查找过的关键字

VMWare

一、Windows xp 物理机器迁移到虚拟机(VMWare)

0、file->import or export

1、 运行vmware workstation软件,依次点击:file->import or export…,出现迁移向导如下界面:

这个界面提示可迁移的类型:
a、从物理计算机迁移;
b、虚拟应用迁移;
c、虚拟机迁移;
d、第三方备份镜像迁移。

2、点击下一步,vmware需要迁移源类型

这步提示需要迁移的源类型:
a、本台物理计算机;
b、一台远程物理计算机;
c、虚拟应用(工业标准);
d、一台虚拟机计算机;
e、一台微软虚拟计算机;
f、一个第三方备份镜像。

3、选择vmware物理计算机

这步提示要迁移的源类型,本篇是介绍物理计算机的迁移,所以选择第一项:物理计算机

4、 点击下一步,本地计算机

这步提示是选择远程计算机还是这台本地计算机,我们选择本地计算机

5、 点击下一步,vmware迁移容量

这步提示选择要迁移的磁盘和转换后的容量大小,并可以调整磁盘容量大小,我们这里仅仅选择C盘要迁移,并采用默认的大小。
vmware虚拟机
新的磁盘空间第一行是实际物理计算机的已用空间,第二行是所需最小大小,下面两行是手工输入转化后的大小。
磁盘大小

6、 点击下一步,虚拟机选择目标

这步是为新的虚拟机选择目标类型。

7、点击下一步

虚拟机VM 
注意这步的操作,有两个选择。 
VMWare ESX 
这个选择是提供vmware服务器版本的一个基础设施的应用,要求是必须有virtualcenter或esx服务器在运行,以后我们会介绍这方面的应用,既然是我们选择本地计算机的迁移,所以这步就不能选择它。
VMWare中新建虚拟机
这步是迁移后的虚拟机属于vmware的一个独立的产品,相当于在vmware中新建个虚拟机,这是本篇的目的,所以我们选择它。

8、 点击下一步,虚拟机选择版本号

这步是给新虚拟机命名,把新虚拟机存储到什么位置和vmware的版本号选择

9、 点击下一步,这步提示磁盘空间分配原则

第一项是允许虚拟磁盘文件存储到上一步选择的目录;
第二项是分配所有磁盘空间给这台虚拟机为了更好的性能;
第三项是把虚拟机文件分割成2GB大小的多个文件;
如果物理计算机上幽默多有的硬盘,并且仅仅是留给这个虚拟机用的话,
可以采用第二项,否则别用,而且还会出现错误提示;
第三项fat32文件系统有最大文件大小限制,限制为单个文件小于4G,
如不在虚拟集中存储大于4g的文件,可不用选择,我们这里仅仅选择第一项。

10、 点击下一步,虚拟机网络

这步提示网络连接类型,关于网络连接的类型可参见:VMWare的3种网络模型 。
我们这里选择桥接,并仅仅选择第一块物理网卡在开机时自动连接。

11、 点击下一步,网络接口

这步非常关键,第一项提示是否定制虚拟机,可以更改主机名称、许可信息、网络接口、时区等信息;
第二项是推荐删除系统还原检查点。如果是各种集成GHOST版本的XP可直接选择第二项即可。
定制选项的相关信息会专篇详细描述

12、 点击下一步,可以看到提示信息的汇总

13、 点击下一步,不要在意这些警告信息,等待完成结束即可。

14、回到vmware主界面看到有个新虚拟机的信息

调整实际分配给虚拟机的内存、cpu数量到符合你实际计算机的最优大小,
启动新虚拟机启动虚拟机后会发现安装新的设备驱动程序、网络上计算机重名、是否安装vmware tools的提示,
可依次安装驱动程序和vmware tools,然后重命名计算机,重启,这样你就得到一个与你物理计算机一摸一样的虚拟机了。
到这里windows xp 物理机器迁移到虚拟机结束。如果你想了解更多VMWare或者其它虚拟机及虚拟技术,可以访问虚拟机百事通 。希望让更多的朋友了解VMWare了解虚拟机,可以给大家带来帮助

vim

一、vim 操作技巧

1、vim中如何删除行?

dd:删除光标所在行,n dd删除指定的行数
删除命令:
x:删除光标后一个字符,相当于Del 
X:删除光标前一个字符,相当于Backspace 
dd:删除光标所在行,n dd删除指定的行数
D:删除光标后本行所有内容,包含光标所在字符
d0:删除光标前本行所有内容,不包含光标所在字符
dw.删除光标开始位置的字,包含光标所在字符</pre>

2、vim中命令如何撤销?

u:一步一步撤销
Ctr-r:反撤销

3、vim中如何选中多行(比如我想要多行缩进)

1、字母v,然后向下拖
2、文本行右移(shift+>)

4、vim中如何设置tab默认缩进四个空格?

1、vim ~/.vimrc
2、set ts=4

5、vim中文本如何左右移动(比如缩进)?

>>:文本行右移
<<:文本行左移

6、vim中复制粘贴命令?

yy复制当前行,nyy复制n行,yw复制单词
p:在光标所在位置向下新开除一行,粘贴

7、vim中的查找命令是什么?

1、比如要做world,直接末行模式下敲 /world 即可
2、n:下一个 N:上一个

8、vim中将整个文件中的abe替换为123(vim中的替换命令)?

1、末行模式下%s/abe/123/g
2、%表示整个文件,g是全局的意思,s是替换的意思

替换操作: r:替换当前字符 R:替换当前行光标后的字符查找命令::/:str查找 n:下一个 N:上一个 s.替换命令:把abc全部替换成123 末行模式下,将光标所在行的abc替换成123 :%s/abe/123/g

9、vim中,末行模式下,将第一行至第10行之间的abc替换成123?

1,10s/abc/123/g

10、vim中如何在vim中敲shell命令(比如我查看linux系统中是否存在某某文件)?

末行模式下,!感叹号加命令:!ls /etc

11、vim中重复上次命令的命令?

.:逗号,重复上一次操作的命令

替换操作:
r:替换当前字符
R:替换当前行光标后的字符查找命令::/:str查找
n:下一个 N:上一个
s.替换命令:把abc全部替换成123
末行模式下,将光标所在行的abc替换成123
:%s/abe/123/g
删除命令:
x:删除光标后一个字符,相当于Del
X:删除光标前一个字符,相当于Backspace
dd:删除光标所在行,n dd删除指定的行数
D:删除光标后本行所有内容,包含光标所在字符
d0:删除光标前本行所有内容,不包含光标所在字符
dw.删除光标开始位置的字,包含光标所在字符
撤销命令:
u:一步一步撤销
Ctr-r:反撤销:
重复命令:
.:重复上一次操作的命令

二、vim 修改光标效果

默认光标显示效果不好,想要修改,定制:
https://www.cnblogs.com/yzsatcnblogs/p/4277891.html

三、正则表达式

1、来源

https://blog.csdn.net/u014015972/article/details/50688837

2、替换

:1,10s/from/to/ 表示在第1到第10行(包含第1,第10行)之间搜索替换
:10s/from/to/ 表示只在第10行搜索替换
:%s/from/to/ 表示在所有行中搜索替换     :1,$s/from/to/g 同上,从第一行到最后一行,加上g表示全局

3、替换中的flag关键字

flags 有如下四个选项:
c confirm,每次替换前询问;
e error, 不显示错误;
g globle,不询问,整行替换。如果不加g选项,则只替换每行的第一个匹配到的字符串;
i ignore,忽略大小写
这些选项可以合并使用,如cgi表示不区分大小写,整行替换,替换前询问

4、正则表达式的元字符

. 匹配任意字符
[abc] 匹配方括号中的任意一个字符,可用-表示字符范围。如[a-z0-9]匹配小写字母和数字
[^abc] 匹配除方括号中字符之外的任意字符
\d 匹配阿拉伯数字,等同于[0-9]
\D 匹配阿拉伯数字之外的任意字符,等同于[^0-9]
\x 匹配十六进制数字,等同于[0-9A-Fa-f]
\X 匹配十六进制数字之外的任意字符,等同于[^0-9A-Fa-f]
\l 匹配[a-z]
\L 匹配[^a-z]
\u 匹配[A-Z]
\U 匹配[^A-Z]
\w 匹配单词字母,等同于[0-9A-Za-z_]
\W 匹配单词字母之外的任意字符,等同于[^0-9A-Za-z_]
\t 匹配<TAB>字符
\s 匹配空白字符,等同于[\t]
\S 匹配非空白字符,等同于[^\t]

5、一些普通字符需转意

* 匹配* 字符
.  匹配. 字符
\/ 匹配 / 字符
\  匹配 \ 字符
\[ 匹配 [ 字符
\] 匹配 ] 字符

6、表示数量的元字符

*  匹配0-任意个
\+ 匹配1-任意个
\? 匹配0-1个
\{n,m} 匹配n-m个
\{n}   匹配n个
\{n,}  匹配n-任意个
\{,m}  匹配0-m个

7、表示位置的元字符

$  匹配行尾
^  匹配行首
\< 匹配单词词首
\> 匹配单词词尾

8、替换变量

在正则式中以\(和\)括起来的正则表达式,在后面使用的时候可以用\1、\2等变量来访问\(和\)中的内容

9、几个例子

删除行尾空格::%s/\s+$//g
删除行首多余空格:%s/^\s*// 或者 %s/^ *//
删除沒有內容的空行:%s/^$// 或者 g/^$/d
删除包含有空格组成的空行:%s/^\s*$// 或者 g/^\s*$/d
删除以空格或TAB开头到结尾的空行:%s/^[ |\t]*$// 或者 g/^[ |\t]*$/d
把文中的所有字符串“abc……xyz”替换为“xyz……abc”可以有下列写法

将行中开头数字删除:
110:/home/user/a.c:194: first defined here
:%/^\d\+://g

替换命令可以在全文中用一个单词替换另一个单词:
:%s/four/4/g  "%" 范围前缀表示在所有行中执行替换。
最后的 "g" 标记表示替换行中的所有匹配点。
如果仅仅对当前行进行操作,那么只要去掉%即可

如果你有一个象 "thirtyfour" 这样的单词,上面的命令会出错。
这种情况下,这个单词会被替换成"thirty4"。要解决这个问题,用 "\<" 来指定匹配单词开头:
:%s/\<four/4/g 显然,这样在处理 "fourty" 的时候还是会出错。
用 "\>" 来解决这个问题:
:%s/\<four\>/4/g

如果你在编码,你可能只想替换注释中的 "four",而保留代码中的。
由于这很难指定,可以在替换命令中加一个 "c" 标记,这样,Vim 会在每次替换前提示你:
:%s/\<four\>/4/gc

删除多余的空格:
要删除这些每行后面多余的空格,可以执行如下命令:
:%s/\s\+$//
命令前面指明范围是 "%",所以这会作用于整个文件。
"substitute" 命令的匹配模式是 "\s\+$"。这表示行末($)前的一个或者多个(\+)空格(\s).
替换命令的 "to" 部分是空的:"//"。这样就会删除那些匹配的空白字符。

匹配重复性模式:
星号项 "*" 规定在它前面的项可以重复任意次。因此:
/a*  匹配 "a","aa","aaa",等等。
但也匹配 "" (空字串),因为零次也包含在内。星号 "*" 仅仅应用于那个紧邻在它前面的项。
因此 "ab*" 匹配 "a","ab","abb","abbb",等等。
如要多次重复整个字符串,那么该字符串必须被组成一个项。
组成一项的方法就是在它前面加 "\(",后面加 "\)"。
因此这个命令:
/\(ab\)*  匹配: "ab","abab","ababab",等等。
而且也匹配 ""。要避免匹配空字串,使用 "\+"。
这表示前面一项可以被匹配一次或多次。
/ab\+ 匹配 "ab","abb","abbb",等等。它不匹配 后面没有跟随 "b" 的 "a"。
要匹配一个可选项,用 "\="。
例如:
/folders\=  匹配 "folder" 和 "folders"。

指定重复次数
要匹配某一项的特定次数重复,使用 "\{n,m}" 这样的形式。
其中 "n" 和 "m" 都是数字。
在它前面的那个项将被重复 "n" 到 "m" 次 (|inclusive| 包含 "n" 和 "m")。
例如:
/ab\{3,5} 匹配 "abbb","abbbb" 以及 "abbbbb"。
当 "n" 省略时,被默认为零。
当 "m" 省略时,被默认为无限大。
当 ",m" 省略时,就表示重复正好 "n" 次。
例如:
  模式           匹配次数
\{,4}           0,1,2,3 或 4
\{3,}           3,4,5,等等
\{0,1}          0 或 1,同 \=
\{0,}           0 或 更多,同 *
\{1,}           1 或 更多,同 \+
\{3}            3

多选一匹配
在一个查找模式中,"或" 运算符是 "\|"。
例如:
/foo\|bar 这个命令匹配了 "foo" 或 "bar"。
更多的抉择可以连在后面:
/one\|two\|three 匹配 "one","two" 或 "three"。
如要匹配其多次重复,那么整个抉择结构须置于 "\(" 和 "\)" 之间:
/\(foo\|bar\)\+  这个命令匹配 "foo","foobar","foofoo","barfoobar",等等。
再举个例子:
/end\(if\|while\|for\)
这个命令匹配 "endif","endwhile" 和 "endfor"。

四、shell脚本操作vim

1、开胃小菜(为啥不行,怎样调用?)

#! /bin/bash
vi abc.txt < EOF
i                    # 进入 insert 模式
Here is a document!  # 输入文本内容
^[                   # 意为按下ESC退出编辑模式
:wq                  # 保存退出
EOF

五、不区分大小写搜索

忽略大小写搜索:
  :set ignorecase
恢复大小写敏感:
  :set noignorecase

六、分屏操作

1、分屏启动

垂直大O:vim -On file_1 file_2 ...
水平小o:vim -on file_1  file_2 ...
n 表示数字:分几屏

2、关闭分屏

关闭当前窗口: ctrl+W c
ctrl+W q

3、分屏

上下:ctrl+W s
上下分屏,并打开新文件 :sp fileName
左右分割:ctrl+W v
左右分割,并打开新文件 :vsp fileName

4.移动光标是hjkl,在各屏间切换,只需按Ctrl+W

1.把光标移到右边        Ctrl+W l
2.把光标移到左边的屏中   Ctrl+W h
3.把光标移动到上边的屏中 Ctrl+W k
4.把光标移动到下面的屏中 Ctrl+W j
5.把光标移动到下一个屏中 Ctrl+W w

5.下面是改变尺寸的操作,主要是高度,对于宽度你可以使用Ctrl+W <或是>,但这可能需要最新的版本才支持。

1.让所有的屏都有一样的高度 Ctrl+W =
2.增加高度    Ctrl+W +
3.减少高度    Ctrl+W -
4.移动分屏

6.这个功能还是使用了Vim的光标键,只不过都是大写。当然了,如果你的分屏很乱很复杂的话,这个功能可能会出现一些非常奇怪的症状

1.向右移动     Ctrl+W L
2.向左移动     Ctrl+W H
3.向上移动     Ctrl+W K
4.向下移动     Ctrl+W J

七、vim打开文件乱码问题

转1. http://blog.sina.com.cn/s/blog_40e1ba640102wm26.html 
2.http://www.cnblogs.com/joeyupdo/archive/2013/03/03/2941737.html
以下为copy链接2中的介绍
(1)encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在 .vimrc 中改变它的值才有意义
(2)fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此),网上是这样介绍的,但是我这样做在.vimrc中定义为utf-8似乎没有作用,只能在打开vim文件时手动设置才会起效,不知道什么原因。 
(3)fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。
(4)termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的 Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。
系统locale是utf-8(很多linux系统默认的locale形式),编辑的文档是GB2312或GBK形式的(Windows记事本
默认保存形式,大部分编辑器也默认保存为这个形式,所以最常见),终端类型utf-8(也就是假定客户端是putty类的unicode软件)
则vim打开文档后,encoding=utf-8(locale决定的),fileencoding=latin1(自动编码判断机制不准导致的),termencoding=空(默认无需转换term编码),显示文件为乱码。
解决方案1:首先要修正fileencoding为cp936或者euc-cn(二者一样的,只不过叫法不同),注意修正的方法不是:set
fileencoding=cp936,这只是将文件保存为cp936,正确的方法是重新以cp936的编码方式加载文件为:edit
++enc=cp936,可以简写为:e ++enc=cp936。
但是这样做,文件关闭后重新打开又要重新设置一遍。出现乱码归根结底的原因是vim不能识别该文件的编码方式,导致不能正常解码(不知道是不是叫解码,我的理解)。所以,我在.vimrc中设置了fileencodings,相当于告诉vim当以utf-8解码文件不成功时以这么几种方式尝试,set fileencoding=utf-8 set fileencodings=ucs-bom,utf-8,cp936,latin1. 这样打开正常了