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

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

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

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

Q&A

解決済

2回答

4507閲覧

filetypeが設定済みの状態で特定の単語の色を変更したい

norio13

総合スコア53

Vim

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

0グッド

0クリップ

投稿2016/02/03 08:04

編集2016/02/03 08:18

前提条件

~/.vim/の中にはvimrcのみ置いてます。
~/.vim/vimrcの内容はこの5行のみです。

vim

1filetype indent plugin on 2syntax on 3colorscheme blue 4syntax keyword SampleKeyword sample 5highlight SampleKeyword ctermfg=black ctermbg=yellow

質問

ファイル名を指定してVimを起動後、filetypeの値が空ではない場合、インサートモードでsampleと入力しても色が変わりませんでした。

色が付かなかった時の起動方法

bash

1$ vim a.txt 2$ vim a.php 3$ vim a.py 4$ vim a.css

但し、ファイル名を指定せずにVimを起動後、インサートモードでsampleと入力すると、sampleの文字色が黒、背景色が黄色になってくれました。
sample.logなどのファイル名を指定した時に、set filetype?が空であった時も色が付きました。

色が付いてくれた時の起動方法(どれもfiletypeは空になる)

bash

1$ vim 2$ vim sample.log 3$ vim aaaaaaaaaa

Vimを起動した時にfiletypeが設定されている場合でも、highlightとsyntaxを使って単語sampleの色を変更させる方法を教えてください。

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

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

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

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

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

guest

回答2

0

ベストアンサー

まず、:highlight はグローバルな設定で、:syntax はバッファローカルな設定です。よって、vimrc に :syntax を書いても、新しいバッファを開けば、そのバッファには適用されません。

以下のようにしてみてください。

vim

1augroup vimrc-syntax 2 autocmd! 3 autocmd Syntax * syntax keyword SampleKeyword sample containedin=ALL 4augroup END

すでに syntax が定義済みの filetype の場合には、どこでもハイライトするには containedin=ALL が必要になります。

投稿2016/02/03 09:17

thinca

総合スコア1864

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

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

norio13

2016/02/03 09:42

念の為Vimを最新版に入れなおしてから、次のように書き直して試したら色が付きました。毎度ありがとうございます。 ```vim filetype indent plugin on syntax on highlight SampleKeyword ctermfg=black ctermbg=yellow augroup vimrcsyntax autocmd! autocmd Syntax * syntax keyword SampleKeyword sample containedin=ALL augroup END ```
guest

0

vimrcのsyntaxとhighlightの部分を以下のように書いてみてください。
※cppの部分は対象のファイルタイプに設定してください。

augroup vimrc-syntax
autocmd!
autocmd BufNewFile,BufRead,FileType cpp :syntax keyword SampleKeyword sample
autocmd ColorScheme cpp :highlight SampleKeyword ctermfg=black ctermbg=yello
augroup END

投稿2016/02/03 08:50

rbtnn

総合スコア57

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

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

norio13

2016/02/03 09:03

有り難うございます。 cppの部分を*やvimに変更し、vim sample.vimで起動後してみたのですが当方の環境ではsampleの色が変わりませんでした。 ```vim filetype indent plugin on syntax on colorscheme blue augroup vimrc-syntax autocmd! autocmd BufNewFile,BufRead,FileType vim :syntax keyword SampleKeyword sample autocmd ColorScheme vim :highlight SampleKeyword ctermfg=black ctermbg=yello augroup END ```
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問