我是vim和shell腳本的新手。我不確定是否存在真正的問題,或者只是我不瞭解vim或shell腳本,但是我通過google進行了搜索並沒有得到任何答案。無論如何,這是我在vim中執行shell腳本時得到的結果。我認爲語法突出顯示不能正常工作。vim中shell腳本的錯誤語法高亮
filename=$(basename $file)
Vim高亮的紅色的$(
和)
。
順便說一句:我在Mac上使用gvim 8.0並且安裝了YCM(如果它是相關的)。
我是vim和shell腳本的新手。我不確定是否存在真正的問題,或者只是我不瞭解vim或shell腳本,但是我通過google進行了搜索並沒有得到任何答案。無論如何,這是我在vim中執行shell腳本時得到的結果。我認爲語法突出顯示不能正常工作。vim中shell腳本的錯誤語法高亮
filename=$(basename $file)
Vim高亮的紅色的$(
和)
。
順便說一句:我在Mac上使用gvim 8.0並且安裝了YCM(如果它是相關的)。
這與Vim的shell語法的行爲有關。它有三種模式:posix shell,ksh和bash。您正在使用bash語法,但Vim將其渲染爲posix shell(默認值)。
這是Vim 8.0中這段代碼的3個不同版本的屏幕截圖。
頂級版只是你在你的屏幕截圖發佈的代碼。默認情況下,它使用posix shell模式,並且您可以看到存在紅色高光。
在中間版本中,我已將#!/bin/sh
添加到文件的開頭。這仍然處於posix模式,仍然有紅色高光。
在底部,你可以看到我切換到#!/bin/bash
。這會觸發bash行爲,現在您可以看到特定於bash的語法不再被標記爲錯誤。
#!
行用於自動檢測文件類型。但是,如果缺失,如果您願意,仍然可以強制使用該模式。
:let b:is_bash=1
:set ft=sh
請注意,打開文件時會設置模式。因此,添加#!/bin/bash
不會立即修復該模式。您需要保存/退出文件,然後再次打開,切換到bash模式。 (或使用本段上面的技巧。)
偉大的學習!你太棒了。 –
對不起,但你爲什麼說它不工作?似乎在圖像中工作 – sidyll
Hi @sidyll所以我在想我的代碼中沒有任何語法錯誤但是vim確實突出顯示了我的一些紅色代碼(如圖所示)。你的意思是說我有語法錯誤嗎?我的腳本在我的labtop上正常工作。 –
對我來說,這只是你的顏色配方:)你試過另一個嗎? – sidyll