我是一个快乐的Emacs用户。无论如何,我发现有一个字段,Vim可以更好地适应这项工作,这是在Linux终端或Windows CLI中,当你不想打开一个单独的窗口时。这个轻量级的任务有一些micro-Emacs发行版,但我还是找不到好的。
对我来说,典型的Vim用法是less
的更强大的替代品,例如:
dir | vim -
现在我来解决我的问题/问题。
首先,Vim从文件顶部开始。我想将光标放在最后一个屏幕行上,但dir | vim +L -
不起作用。我想因为L
不是ex
命令。我怎么能克服这个?
当我完成浏览,并且我想要退出时,我必须键入::q!
五个键和移位(这样两只手)。对于快速输出检查真的很重要。冒号命令非常慢,因为它们需要移位。所以我想知道是否有办法用功能键(比如F2)或Tab键替换冒号:
。另外,我想用一个非移位键替换!
键,像`-=[];'\,./
这样的单个键。这可能吗?这样做的缺点是什么?
通过冒号替换注意我的意思是只替换每个冒号命令的:
符号,因此我可以键入<F2>q<CR>
进行退出。例如,在Emacs中,您可以将修饰键“Meta”(通常为Alt
键)分配给非标准键,或将所有以前缀Ctrl-x
开头的命令重新映射到不同的键。
答案 0 :(得分:3)
在Vim中,L
用于将光标放在窗口的底部。
使用$ command | vim - +8
将光标放在第8行。
使用+$
将光标放在最后一行。
如果您不喜欢~/.vimrc
:
:q!
中
nnoremap <F2> :q!<CR>
另外,你对less
不喜欢什么?
修改强> 的
$ command | vim - +'norm L'
将光标放在最后一条可见线上。
您可以使用任何键而不是:
,但Vim会使用或多或少的整个键盘。您必须明智地选择替换密钥,并在~/.vimrc
中使用以下内容:
nnoremap <F2> :
答案 1 :(得分:3)
在Ubuntu上安装Vim73时,有一个运行VIM的脚本更像“less”。我在你描述的情况下使用它。
该脚本位于less.sh
处(替换为您的安装路径)/usr/share/vim/vim73/macros/less.sh
以下是您的服务器上没有该脚本的脚本:
脚本/usr/share/vim/vim73/macros/less.sh
:
#!/bin/sh
# Shell script to start Vim with less.vim.
# Read stdin if no arguments were given.
if test -t 1; then
if test $# = 0; then
vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' -
else
vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' "$@"
fi
else
# Output is not a terminal, cat arguments or stdin
if test $# = 0; then
cat
else
cat "$@"
fi
fi
请注意,它正在“关闭”所有插件
如果你想以这种方式开始.vimrc
中的特殊事情,你可以使用别名来启动它。例如
alias lessv='use_less=1 /usr/share/vim/vim73/macros/less.sh'
# use it:
lessv some_file
# and
dir | lessv # no need for "-"
然后,您可以在$use_less
中将其引用为.vimrc
,例如在所有常用映射之前执行finish
。如果以“正常方式”启动vim,则不会出现错误(您不必使用exists("$use_less")
之类的测试)。如果没有其他充分的理由可以使用它,那么使用名为use_less的变量会很有趣。
使用less.sh
打开命令时有一些帮助,只需点击 h
我也在vim帮助中找到了它::h less
我试图在Internet上找到less.vim
的代码并使用链接,但没有运气。我认为该文件是安装的一部分。
修改强>
的视窗:强>
在某些安装的窗口中,还有一个less.bat
来启动vim或多或少更少。如果它不在安装中,我将它粘贴在这里:
脚本C:\Program\Vim\vim73\macros\less.bat
:
@echo off
rem batch file to start Vim with less.vim.
rem Read stdin if no arguments were given.
rem Written by Ken Takata.
if "%1"=="" (
vim --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" -
) else (
vim --cmd "let no_plugin_maps = 1" -c "runtime! macros/less.vim" %*
)
最后提示:
j , e , Ctrl + j , Ctrl + e < / kbd>, Ctrl + n 全部映射为向下滚动1行(首先将光标放在窗口底部)。
k , y , Ctrl + k , Ctrl + y < / kbd>, Ctrl + p 全部映射到滚动 1行(比较少,首先将光标放在窗口底部)。登记/>
要移动上下使用<Up>
和<Down>
。
答案 2 :(得分:0)
在Linux中,您可以这样做:
ls | vim +$ +'map <F2> :' +'map <F3> !' -