質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Q&A

解決済

4回答

5304閲覧

シェルスクリプトを書く際のvimでのハイライト

u_09

総合スコア18

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

0グッド

1クリップ

投稿2016/05/19 05:10

編集2016/05/19 07:22

シェルスクリプトを勉強中なのですが、()で囲んでサブシェルにした場合、()内のハイライトが単色になってしまいます。サブシェル内でも通常通り、もしくはそれに近いかもう少し細かくハイライトする方法はありませんか?

filetype は sh となっています。カラースキームは molokai を使用していて、vimはgvimよりも端末内で使用することが多いです。バージョンは7.4です。

そもそも、molokaiの色分けがあまり細かくないような気がするのでお勧めがあれば教えていただけるとありがたいです。色々試した末に、結局molokaiを使い続けているという状況です。
カラースキームは背景が黒っぽく、色分けが細かいものが好きですが、色分けが細かければ背景色にはそこまでこだわりません。

どういった方法でも構わないので、サブシェルでの処理もハイライトする設定を教えてください。よろしくお願いします。

####修正・追記
修正依頼ありがとうございます。気づいていなかったので助かりました。いくつか試してみたところ、色分けされるものとされないものがありました。

zsh

1aaa() 2( 3 # 水色になる 4 ls -l 5 vim 6 emacs 7 8 # ピンクになる 9 pwd 10 cd 11)

ピンクになる方は組み込みのコマンドだからですかね?それ以外がすべて水色になります。{}でくくっているときは例えば ls -l は ls が白、 -l は水色になっているのですが、()に入れるとls -l 全体が水色となります。また、コメントも水色になってしまいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

thinca

2016/05/19 05:29

現象が再現できません。具体的に問題が起きるコードを教えてください。
u_09

2016/05/19 11:44

実験していただきありがとうございます。カラー設定以外の設定ファイルの影響も考え、原因を探ってみようと思います。バージョンは7.4です。
guest

回答4

0

ベストアンサー

カラースキームの問題ではなくシンタックスファイル ($VIMRUNTIME/syntax/sh.vim) の仕様です。

let g:is_kornshell = 1, let g:is_posix = 1, let g:is_bash = 1 のどれかを vimrc に追記してください。 :help ft-sh-syntax の項に詳しく書いてあります。

vim, emacs もハイライトしたければ、少し雑ですが

vimrc

1autocmd vimrc FileType sh syn keyword vim emacs

と vimrc に書くなどしてキーワードを追加する必要があると思います。syntax on (あるいは `syntax enable) より後に書いてください。キーワードを追加するのはもう少しいい方法があるかもしれません。

投稿2016/05/20 11:18

編集2016/05/20 11:38
machakann

総合スコア112

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

重要なことを忘れていたのですが、使用しているvimはCygwin上のものでした。試しにMacで同じスクリプトを表示してみたところきちんとハイライトされました。
また、教えていただいたlet:g is_bash = 1でcygwin上のものも全部ではないですが一部ハイライトされるようになりました。
バージョンについては、Cygwinのものは7.4とまでしか表示されず細かい部分は分からないのですが確かにこれは古いものなのかもしれません。なので、結果としては、ご指摘いただいたようにバージョンを新しくすることが解決策ではないかと思われます。
解答してくださった皆さんありがとうございます。

投稿2016/05/21 04:14

u_09

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Vim 7.4 をお使いとのことですが、7.4.0 だとするとかなり古いバージョンになります。
パッチレベルも含めて最新バージョンの Vim を試してみると良いかもしれません。

投稿2016/05/20 10:19

thinca

総合スコア1864

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私は 7.4.209 で elflord を使ってますが、サブシェルの中身のハイライトも変わりますね
また、Unite をお使いであれば、ujihisa/unite-colorscheme をインストールして、
:Unite colorscheme -auto-preview を起動すると、現在のバッファのコードをcolorscheme別に確認することができます。

投稿2016/05/19 05:33

raa0121

総合スコア190

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

u_09

2016/05/19 07:30

ためしにelflordにしてみたのですが、ハイライトが変わりませんでした。elflordの場合はピンクになってしましました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問