目录

%toc

FOR的变量参照

FOR 变量参照的替换已被增强。您现在可以使用下列选项语法:
 
~I - 删除任何引号("),扩充 %I 
%~fI - 将 %I 扩充到一个完全合格的路径名 
%~dI - 仅将 %I 扩充到一个驱动器号 
%~pI - 仅将 %I 扩充到一个路径 
%~nI - 仅将 %I 扩充到一个文件名 
%~xI - 仅将 %I 扩充到一个文件扩展名 
%~sI - 扩充的路径只含有短名 
%~aI - 将 %I 扩充到文件的文件属性 
%~tI - 将 %I 扩充到文件的日期/时间 
%~zI - 将 %I 扩充到文件的大小 
%~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个完全合格的名称。如果环境变量未被定义,或者没有找到文件,此组合键会扩充空字符串
 
可以组合修饰符来得到多重结果:
 
%~dpI - 仅将 %I 扩充到一个驱动器号和路径 
%~nxI - 仅将 %I 扩充到一个文件名和扩展名 
%~fsI - 仅将 %I 扩充到一个带有短名的完整路径名 
%~dp$PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充到找到的第一个驱动器号和路径。 
%~ftzaI - 将 %I 扩充到类似输出线路的 DIR
 
在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名比较易读,而且避免与不分大小写的组合键混淆。

下面是一个例子

@echo off
set p=e:\kuaipan\vimwiki\index.wiki

for /f "delims==" %%i in ("%p%") do (
set filep=%%~dpi
set filen=%%~nxi
set file_name=%%~ni
set file_ext=%%~xi
)

echo File path: %filep%,file %filen%, file_name is:%file_name%, file_ext=%file_ext%

pause

从这里打开命令行

有时候需要在某个路径打开命令行,但是经常是先打开cmd.exe 然后再切换到工作目录,这浪费了很多不必要的时间。下面我们自己动手修改系统文件夹的右键菜单,添加从这里打开命令行的选项,具体方法记录在这里

右键菜单添加:使用vim编辑

在Windows的右键菜单中添加一个,使用vim编辑的选项,方法记录在这里

批处理命令

今天又学到了一个有用的命令,pushdpopd可以用来将路径压入临时存储栈

解决Windows中gvim删除键(backspace)失效

vim For Windows经常出现Backspace键只能删除我在没有退出插入模式下输入的字符, 当我退出插入模式后再进插入模式就不能删除我之前编辑的字符了。解决方法如下:


set backspace=indent,eol,start  whichwrap+=<,>,[,] 

Emacs和vim被分别号称编辑器之神和神的编辑器,总之两者都是这个星球上最强大的编辑器。相比vim,可能emacs显得稍微臃肿了一些,我在Windows7中配置满足自己需求的emacs也费了一小把功夫,完美配置方法具体如下。