运行我发现了另一个同样的问题解决了计算器但解决方案并没有为我工作:
How to tell if vim is being run in command line vs. powershell
该解决方案使用stridx(&shell, 'posh') != -1
告诉VIM运行在PowerShell中。
所以,我想:echo
的stridx(&shell, 'posh')
在vim在Windows 命令提示符,PowerShell的,shell终端,gVim的和的MacVim运行。
他们都回应-1
。这意味着它不起作用。
请原谅我再次提出这个问题。
我安装一个Vim插件Colorizer,然后我发现,当我编辑在命令提示符或PowerShell的它会导致错误。所以我想在_vimrc中添加一个if条件来避免我在运行vim时的自动命令ColorHighlight
命令提示符或PowerShell。
我试图用has("feature")
功能dos16
dos32
等..但找不到一个好的。Vimscript中:如何判断Vim是在命令提示符和PowerShell
0
A
回答
1
&shell
是告诉Vim什么shell应该对爆炸命令(:!
,read !
,:w !
),system()
,&*prg
选项使用的设置。它与Vim运行的shell完全无关,除了,默认值取自环境。
has('feature')
用于确定Vim具有哪些功能,其结果通常在编译时进行硬编码。从中启动Vim的Shell不是Vim功能,因此has()
即使在运行时确定了一些“功能”(例如has('interpreter')
给定了Vim使用+interpreter/dyn
或has('gui_running')
编译),也是没有用的。
执行此操作的唯一方法是取决于系统:运行shell,获取其进程ID(在* nix shell中为$$
,对于Windows为dunno)(Vim无法获取自己的进程ID)并检查哪个进程是在该shell中给定进程parent的父代(shell的父代的父代是Vim父代),然后检出进程的名称。如果您有支持口译员的Vim,您可以直接获得Vim进程ID; Python + psutil应该可以在Windows上运行:
python << EOF
def myscript_get_parent_process_name():
import psutil
return psutil.Process().parent().name()
EOF
if stridx(pyeval('myscript_get_parent_process_name()'), 'posh') != -1
" Powershell code
endif
相关问题
- 1. 是否可以在vimscript中访问vim的命令行参数?
- 2. 如何在特定的PowerShell中链接命令4命令提示符?
- 3. 如何判断您是否在git-svn repo命令行中?
- 4. Windows PowerShell:更改命令提示符
- 5. 如何判断Vim不使用〜/ .vim
- 6. 在Windows中从闪烁的命令提示符停止vim?
- 7. 问:如何在命令提示符中显示中文字符
- 8. 如何判断ant是否安装了/什么是$命令?
- 9. 如何用PowerShell替换Visual Studio命令提示符?
- 10. 如何将PowerShell与Visual Studio命令提示符一起使用?
- 11. 如何判断所有Angular命令是否完全使用Javascript?
- 12. 如何在windows 7命令提示符下编写adb命令
- 13. Windows:如何在命令提示符下指定多行命令?
- 14. 如何在VimScript中显示动画进度条和动画命令行?
- 15. Visual Studio命令提示符与常规命令提示符?
- 16. “Node.js命令提示符”和Windows命令提示符有什么区别?
- 17. 如何从命令提示符
- 18. 如何调用.NET命令提示符
- 19. 如何退出.profile命令提示符
- 20. 如何延迟ssh命令提示符?
- 21. 如何在vim |之后中断终端命令grep组合
- 22. 下载Windows中大型文件的命令提示符/ PowerShell的
- 23. 模拟命令提示符命令
- 24. 运行命令提示符命令
- 25. 如何判断UIPrintInteractionController是否显示?
- 26. Powershell - 提示变量添加到命令
- 27. ++在vim命令中
- 28. 不使用任何命令提示符处安装没有命令提示符
- 29. 参数和命令提示符
- 30. 命令提示符快捷区别“。”和 “../ ..”
':echo&shell'在不同的控制台中,输出是什么? – Kent 2014-11-05 13:00:45
@mts您无法在未经批准的情况下添加评论或编辑问题,因为您碰巧注销并创建了一个具有相同名称的新用户。 – ZyX 2014-11-05 15:04:20
Colorizer插件的作者在这里。请使用问题跟踪器更清楚地描述你的问题 – 2014-11-05 18:36:19