[Vim][SystemVerilog] 標準filetype に SystemVerilogが入りました!

[Vim][SystemVerilog] 標準filetypeの追加に向けて

にて書いていたのですが、今朝確認したら追加されちゃいました!!!

Vim 7.4.177 と 178の間にコミットに追加されたみたいです。

  • hg log runtime/syntax/systemverilog.vim

チェンジセット: 5663:1dea14d4c738
ユーザ: Bram Moolenaar bram@vim.org
日付: Tue Feb 11 19:15:50 2014 +0100
要約: Update runtime files. Add support for systemverilog.

お手伝いくださった皆さまに感謝します。

[Vim] unite startifyを試して nested を知った

[vim]vim-startify を unite.vim で代替してみる

こちらの記事を参考に、試してみました。
私の設定はこちら。ほとんど変わってないです。

let g:unite_source_alias_aliases = {
\ "startup_file_mru" : {
\  "source" : "file_mru",
\ },
\ "startup_directory_mru" : {
\  "source" : "directory_mru",
\ },
\}

" 表示数の制限
call unite#custom_max_candidates("startup_file_mru"10)
call unite#custom_max_candidates("startup_directory_mru"5)

if !exists("g:unite_source_menu_menus")
  let g:unite_source_menu_menus = {}
endif

" :Unite menu:startup での出力リスト
let g:unite_source_menu_menus.startup = {
\ "description" : "startup menu",
\ "command_candidates" : [
\   [ "edit",  "edit" ],
\   [ "vimrc",  "edit " . $VIMHOME . "/.vimrc"],
\   [ "gvimrc""edit " . $VIMHOME . "/.gvimrc"],
\   [ "vimfiler""VimFiler" ],
\   [ "unite-howm""Unite qfixhowm/new qfixhowm:nocache -hide-source-names -no-split" ],
\   [ "unite-update""Unite -log neobundle/update" ],
\   [ "unite-file_mru""Unite file_mru" ],
\   [ "unite-directory_mru""Unite directory_mru" ],
\ ]
\}

command! UniteStartup
\ Unite
\ output:echo:"===:menu:===":! menu:startup
\ output:echo:":":!
\ output:echo:"===:file:mru:===":! startup_file_mru
\ output:echo:":":!
\ output:echo:"===:directory:mru:===":! startup_directory_mru
\ -hide-source-names
\ -no-split
\ -quick-match

" 引数なしの場合にStartMenu起動
if !has("gui_macvim")
  if has('vim_starting') && expand("%") == ""
    autocmd MyVimrc VimEnter * nested :UniteStartup
  endif
endif

実施したところで問題が発生。

filetypeが設定されない

おしょーさんに相談したら、そのまま unite.vimにIssuesが登録。

unite.vim から -quick-match でファイルを開いた時に正しく filetype が設定されない場合がある

結果として、unite.vim改善Vim仕様がありました。
Vim仕様 について。

autocmd-nested

  • helpより
  •                                                 *autocmd-nested* *E218*
    既定では、自動コマンドはネストしない (入れ子にならない)。自動コマンド内で ":e"
    や ":w" を使っても、これらに対してはイベント BufRead や BufWrite による
    自動コマンドは実行されない。もしこれを実行してほしいなら、ネストしてほしいコマ
    ンド内でフラグ "nested" を使うこと。例: >
            :autocmd FileChangedShell *.c nested e!
    再帰的ループを避けるために、ネストは10段階までに制限されている。

なるほど。
自動コマンドからのものには注意が必要だなーっと。

Vim活も再開させたいなぁ~と思ったり・・・
しかし、なぜ MacVimだとこれが出来ないんだろうか???

[Vim] 変数の初期化記述

紹介:vim-over

osyo-mangaさんが作成されたプラグインです。
個人的には凄い気に入ってます。


[vim]Vim の :substitute をプレビューするプラグインつくった


ちなみに、「:OverCommandLine」では置換以外のコマンドも使えます。


本題:初期化記述

プラグインの設定などで、よく「g:xxx_xxx」や「b:xxx_xxx」といった形で 変数が設けられており、使用するユーザーが変更出来るようにしてある場合があります。


私が作成しているプラグインにもそういった変数があるのですが、
プラグイン内の処理としては、設定されてなければ初期値を代入するといった記述を行ってます。

  • 今まで書いていた記述例
  • if !exists("g:vim_test")
      let g:vim_test = "default"
    endif

しかし、vim-overなどの記述は以下のようになっています。

  • get を使った記述例
  • let g:vim_test = get(g: , "vim_test""default")

getを知らなかったので、こういった書き方があるんですね。
個人的には、getを使った方が記述が少なくて好きです。

Vim] 異なる環境で共通の .vimrcを使い3つのTopics

ちょっと前に書いた
[Vim] いつでも同じ状態で使いたい
の一旦のまとめになります。(個人的には)

  1. GitHubや、Dropboxを利用する。
  2. ローカル設定用があれば読み込ませるようにする。
  3. 環境変数を利用する。

上の2つまではこの前書いたので、前記事は参照ください。


環境変数を利用する。

プロキシが限定されている会社なり作業環境のせいで
gitで行うプロトコルが defaultの「https」では難しいことがありました。


「http」や「git」にしないといけない場合がありました。
その際に「環境変数」を利用することで、解決することができました。

if exists("$USER_GIT_PROTOCOL")
  let g:neobundle_default_git_protocol = $USER_GIT_PROTOCOL
endif


Vim scriptでは、上記のように環境変数を見ることが出来ます。
そのため、設定されているのであればその設定に従うという設定にしてます。


例えば、cshの場合だと「setenv USERGITPROTOCOL http」と設定していれば「http」での通信になります。


このように、環境変数を利用することで共通の .vimrcで色々な環境にて対応出来そうです。


今のところ、私はWindows/Mac/Linuxなどの環境で共通で運用できてます。


参考記事

[Vim][HDL] 便利なスニペット(neosnippet.vim)

にて、「neosnippet.vim」ではVim scriptの式が埋め込めるということを知って、「ファイル名 = モジュール名」だったりするので、便利かも!と思っていました。


そう思っていたところに、以下の記事が出てきました。
Vim Advent Calendar 2012 に感謝。


VimでVerilog HDLを書くための設定 - コンピュータ忘備録


ここでは、Verilog HDLの module部分にファイル名が埋め込まれるようになってます。
便利なので、使ってみてはどうでしょうか。


また、私が少しずつ作っている Vimプラグインにも追加しました。


vim-systemc


これで、SC_MODULE(xxx) の「xxx」の部分にファイル名が挿入されます。

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数