在 Vi 中如果想选取文本作为 Shell 命令来执行该如何做呢? 想法的背景是想在 Vi 中编辑 Shell 命令,主要是对参数的修改,然后直接选择执行,而不希望复制再贴到 Terminal 下看结果。方法其实很简单,用不着使用 VimShell,关键这个插件的安装还依赖于另两个插件。方法就是:
1. 可视模式选择文本,选择技巧, 按 v 逐字选择,j 从光标位置到行尾,最有用的莫过于大 V,以行为单位选择,所以按一下大 V 直接选中当前行
2. Shift+; 进到 :'<,'> 提示符
3. 输入 w !sh, 回车即可,要用 fish 就用 w !fish效果

原理(这个表述其实不怎么准确):其实进行的是一个管道操作,把选择的文本内容输送给 sh 执行,相当于
echo "echo 'Hello world'" | sh
如果想把执行结果输出到文件或是剪贴板, 就可借题发挥下了,比如 Read More
Vi 有了 Vundle 这么一个总管(插件管理器),安装插件着实太省事了,再也不需要自己把 *.vim 文件放在各处。只需要做一次
$ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
编辑好
~/.vimrc文件,装什么每次在这个文件中加上Plugin 'scrooloose/nerdtree',运行:PluginInstall即可。我第一次体验执行
vim +PluginInstall +qall(和在 Vi 中执行:PluginInstall同一效果), 总是得到类似这样的错误Error detected while processing function vundle#installer#new..<SNR>46_process..vundle#installer#run..vundle#installe
r#install..<SNR>46_sync..<SNR>46_make_sync_command..<SNR>46_get_current_origin_url..<SNR>46_system:
line 1:
E484: Can't open file /var/folders/xz/vqv039517flcxtqzrq_jjy1xqzfzc0/T/v0rQ2fl/1
Error detected while processing function vundle#installer#new..<SNR>46_process..vundle#installer#run..vundle#installe
r#install..<SNR>46_sync: Read More- 在 vi 中打开过多个文件时,每个文件都是存放在各自的 buffer 中,可以用命令 ls (buffers 或 files,三个命令中拣你最喜欢的一个即可,ls 输入方便,buffers/files 更表意) 显示所有的 buffer。显示出来的结果如下:

可以看到
每个 Buffer 的编号,分别是 1, 4, 5, 6
% 表示的是当前窗口中的 Buffer
+ 表该 Buffer 中的内容有修改
Buffer 中的文件名称 Read More - 能在 Eclipse 或是 IDEA 中写 Scala 程序当然是不错的,但有时候还是有必要在更轻量级的文本编辑器中编辑,在 Unix 族系统中首推 vi。要让更好的编辑 Scala, 最主要就是让 vi 支持 Scala 的语法高亮。
有现成的 vi 插件,https://github.com/scala/scala-dist/tree/master/tool-support/src/vim。下载下来三个目录 indent, syntax 和 ftdetect 及文件放在~/.vim目录下.
然后到 vim 中命令syntax on打开语法高亮就能识别 *.scala 文件高亮显示 Scala 代码了。应该把syn on加到 vim 的初始化脚本~/.vimrc文件中去。
更为自动的一点是有人把下载支持文件做成了一句语 bash 脚本 Read More - 之前每次终端连接到了 Linux/Unix 编辑文件,只知道用 vi,至于此时是 vi 还是 vim 就不得而知了,也不知如何去知。总以为 vi 就是 vim,vim 就是 vi,就没认真想过多出的 vim 是怎么回事。
据说:vi - visual editor, very inconvenient, or virtually incomprehensible, vim - VI IMproved,俨然是个 vi 的加强版。
只是经常会登录同是 Redhat AS 4 的两台机器,同样是用 vi 启动编辑器,一个能进行语法加亮,v 可进入可视模式,空行前的波浪号是蓝色的(下称机器A);另一个对于各种语法却是熟视无睹,v 无法进入可视模式,空行前的波浪号也是白色的(下称机器B)。这时才想起是否是 vi 与 vim 的区别,网上找来: Read More 对于经常要辗转于 Linux/Unix 终端的用户,时常要使用 vi 来编辑文本。Emacs 虽说功能强,但学习起来更为陡峭, 而况有些系统默认时没有 Emacs。 对于 vi 未有多份心者,也许使用它四五年时间,不过 i、o、dd、:wq、方向键移动光标尔耳,y、p 拷贝粘贴都极少用。
总是想,既然常常用一个软件,那就尽量用好它,为工作多提升效率,不必多耗费时间,只每时多份心而已。故网上找来 vi/vim 的快捷键盘对照图, 有中英文对照,可打印出来,贴于你座位的隔板上,以助记忆习知。
若是对 vi/vim 有了好感,也想在 windows 一试 vi/vim 的身手, 你可以用 cygwin 里的 vi。而且 vi/vim 也像 Emacs 一样,有了 for windows 版的 vi/vim,并且一来就是俩: Read More
- 1. Vi 中执行系统命令
命令模式下用 ! (Shell 命令),如
:! perl test.pl
2. Vi 中拷贝、剪切、粘贴操作
v(逐字符)或V(逐行)进入可视模式(Visual mode),然后用方向键或hjkl等移动命令就可以选择了.
拷贝: 选择完后按y;剪切: 选择完后按d;粘贴: 移动到合适的地方, 按 p, 也可以用 P
3. 控制台下的 Emacs 支持语法加亮
在 ~/.emacs 文件(没有该文件则新建一个) 中加上
(global-font-lock-mode t)
或者你进一 Emacs 中执行 M-x global-font-lock-mode 也能看到语法加亮的效果
有说在 ~/.emacs 中加上这个定制变量的 Read More