運行我發現了另一個同樣的問題解決了計算器但解決方案並沒有爲我工作:
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. VIM如何在命令提示符下
- 2. 從內部Vim命令獲得Vimscript中
- 3. 命令提示符中的VIM Windows 10
- 4. 是否可以在vimscript中訪問vim的命令行參數?
- 5. 如何在特定的PowerShell中鏈接命令4命令提示符?
- 6. 如何檢測vimscript中的vim命令行參數?
- 7. 運行提升PowerShell命令從命令提示符
- 8. 如何判斷您是否在git-svn repo命令行中?
- 9. Powershell的命令提示符結果
- 10. Windows PowerShell:更改命令提示符
- 11. 如何判斷Vim不使用〜/ .vim
- 12. 如何在c#中使用命令提示符運行命令#
- 13. 如何在Windows命令提示符中分割命令輸出?
- 14. 從命令提示符運行PowerShell命令(無ps1腳本)
- 15. 在Windows中從閃爍的命令提示符停止vim?
- 16. 如何判斷ant是否安裝了/什麼是$命令?
- 17. 問:如何在命令提示符中顯示中文字符
- 18. 如何從powershell打開命令提示符
- 19. 如何將PowerShell與Visual Studio命令提示符一起使用?
- 20. 如何用PowerShell替換Visual Studio命令提示符?
- 21. del命令在命令提示符
- 22. 命令提示符在JAVA
- 23. 如何判斷「find」命令的輸出是否爲空?
- 24. 如何判斷所有Angular命令是否完全使用Javascript?
- 25. 是否有任何命令從PowerShell命令提示符獲取PowerShell版本的機會列表?
- 26. 如何在windows 7命令提示符下編寫adb命令
- 27. Windows:如何在命令提示符下指定多行命令?
- 28. 如何在命令提示符下使用打印命令(Windows)
- 29. 如何寫在命令提示符下的第二級命令
- 30. 如何在VimScript中顯示動畫進度條和動畫命令行?
':echo&shell'在不同的控制檯中,輸出是什麼? – Kent 2014-11-05 13:00:45
@mts您無法在未經批准的情況下添加評論或編輯問題,因爲您碰巧註銷並創建了一個具有相同名稱的新用戶。 – ZyX 2014-11-05 15:04:20
Colorizer插件的作者在這裏。請使用問題跟蹤器更清楚地描述你的問題 – 2014-11-05 18:36:19