Open thinca opened 11 years ago
私は$VIM/_vimrcを提供する案も$HOME/_vimrcを自動生成する案もどちらも強く反対です。 前者の理由はすでに述べたとおりです。 後者は特に余計なことをやり過ぎですし、その生成スクリプトをどこに書くんじゃいとなります。 これ実質vimrcに書くしかなく、そんな複雑なことするくらいなら 読んでカスタマイズ方法がわかる今の形式のほうがはるかに良いです。
$VIM/_vimrc
に書けば良いと思います。デフォルトの vimrc を別ファイルで用意しておき、$VIM/_vimrc
には $HOME/_vimrc
の存在チェックと、存在していなかった場合にコピーする処理、そして最後に $HOME/_vimrc
を :source
するだけ書いておけば良い。次回以降は自動的に $HOME/_vimrc
が読み込まれます。
@thinca さん
_vimrc はユーザ設定用と広く知られているのでユーザは $VIM/_vimrc を書き換えてしまう可能性が高い。
初心者にとっては vimrc だろうが _vimrc だろうが違いはわかりません。恐らく現状でも vimrc を書き換えてしまう人は書き換えてしまうでしょう。
そうではありません。すでに _vimrc を書き換えるという情報は多くありますし、 また現在の vimrc 自体にもどうすべきかは記載されています。 書き換えようとした時点で正しい情報に触れられるようになっています。
$VIM/vimrc
を読んでもらう前提ならば、それこそそこにコピーするよう指示しておけば良い話です。(自動コピーするならば必要ないですが)
$VIM/switches/enabled/disable-vimrc.vim
というファイルがあったら読み込まない(vimrcの先頭部分でfinishする)
というのではダメ?
すでに $VIM/switches/enabled/disable-vimdoc-ja.vim
を置くと vimdoc-ja が無効になる仕組みは作ってあります。
以上のような方法はまず受け入れられません。
$VIM/_vimrc
に書けば良いと思います。
そこに書いたとしても同じ事です。勝手にファイルを作るべきではない。
本来なら _viminfo だって作らせたくないですなぁ。
こっちでやるべきだったので転載:
from #330 by @mattn
僕が初心者で、欲しいとしたら、~/_vimrc を簡単に作れるウィザード形式のプラグインかな。 ユーザ主導で、かつexampleを読み込むかどうかも質問に入れたらいい。
- まったく用意しない (使いにくい)
- 初回起動時にファイルを作る (余計な処理が多すぎる)
- 初めて設定を書いた時にデフォルト設定が全部失われたようにみえる (ユーザの予想に反する動作はしてはならない)
- アップデート時にユーザの変更が失われる (ユーザの資産が失われるのは論外)
初回起動時にファイルを作るについて、副作用で混乱すると言うのならわかるのですが、余計な処理が多すぎるとはどういうことでしょう。私はそうは思いません。5行くらい出かけるし、大した処理ではない。
本来なら _viminfo だって作らせたくないですなぁ。
作らせたくないなら、標準の設定ファイルに set viminfo=
と書いておけば良いです。私はこれを消すのは反対ですが。
どこ書けばいいw 携帯からなので追えないw
On 3/13/13, MURAOKA Taro notifications@github.com wrote:
こっちでやるべきだったので転載:
from #330 by @mattn
僕が初心者で、欲しいとしたら、~/_vimrc を簡単に作れるウィザード形式のプラグインかな。 ユーザ主導で、かつexampleを読み込むかどうかも質問に入れたらいい。
Reply to this email directly or view it on GitHub: https://github.com/vim-jp/issues/issues/331#issuecomment-14785846
@thinca さん
$VIM/switches/enabled/disable-vimrc.vim
というファイルがあったら読み込まない(vimrcの先頭部分でfinishする)
私のこの案に対する意見はありませんか?
@koron アップデートスクリプト使用時にそのファイルが消されないのなら個人的にはアリです。
(ちなみに今はアップデートスクリプトを叩く度に vimrc
と gvimrc
を手動で消している…)。
個人的には、と書いたのは、恐らく世の中にはディレクトリを丸ごと入れ替えて更新する人もいると思われるので(現に私が更新スクリプトを利用し始める前まではそうしていた)、そういう人に対しては全く助けにならないかな、と思うからです。
@thinca さん
アップデートスクリプト使用時にそのファイルが消されないのなら~アリ
消されません。そのための仕組みです。
あとこれまでの @thinca さんの案は総じて「ある程度使い込んでいる人」の立場に立っているように見受けられます。 「ちょっとVimを試してみたい&ダメなら綺麗サッパリ手軽に消したい」 そんな風に考える人の立場で少し考えなおして&見なおしてみてください。 これまでの案でできあがるものはどう映りますか?
おちけつ! もっといろんな人の意見が聞きたいなぁ。。。普通のVimmerとか最近使い始めたVimmerとか
この流れでそういう人が書き込んでくれるか微妙だけど:grimacing: 勇気を出して書き込んで頂けると嬉しいです。
僕は、vimだからこそ、初心者も中級者も上級者も救えるべきだと思う。
そういう点でthincaさんが今回「じゃあkaoriya版やめればいいじゃん」とならずに意見した所にGJと言うべきだと思う。
初心者はvimrcがどう作用するか知らないし、情報はネットが多い。またswitchesの知識をこのタイミングで教えるべきでない。
中級者、上級者は逆に「好きな風にやらせろよ」な人なので、~/_vimrc があれば優先する仕組みとして、初回の作成を補助(まだexampleが欲しいかどうかも聞く)する仕組みがあればいい。
On 3/13/13, h_east notifications@github.com wrote:
おちけつ! もっといろんな人の意見が聞きたいなぁ。。。普通のVimmerとか最近使い始めたVimmerとか
この流れでそういう人が書き込んでくれるか微妙だけど:grimacing: 勇気を出して書き込んで頂けると嬉しいです。
Reply to this email directly or view it on GitHub: https://github.com/vim-jp/issues/issues/331#issuecomment-14786837
ダメなら綺麗サッパリ手軽に消したい
たしかにこの視点は抜けてましたね。これを考えるとコピーはよろしくないですね。
あとこれまでの @thinca さんの案は総じて「ある程度使い込んでいる人」の立場に立っているように見受けられます。
初心者と上級者、両方の意見に立っていたつもりです(そうは言っても本当に初心者ではないので視点が抜けていたわけですが)。
@h-east ここで想定している初心者はそもそもこんなところ覗かないだろうなぁw (覗いた時点で初心者とは思えないw)
初回に自動生成 するという仮定で、お風呂でいろいろシミュレーションしてみたけど
$VIM/_vimrc
しかないだろうと思った。この場合 _viminfo
も $VIM
に生成するよう設定したほうが良い。
そうすれば$VIMを消せば全部消えてくれる。自動生成をやるならWindowsは概ねコレでハッピー。
ただコレUNIX系ではツライ。
これは、$VIM/vimrc
で $VIM/_vimrc
を自動生成する、と言うことですね。
パッケージに直接 $VIM/_vimrc
を入れた場合との違いは何があるでしょうか。
自動生成はオヌヌメしないなー。
私も自動生成はいまいちと思います。
$VIM/_vimrc, $VIM/switches
カスタマイズのために Program Files 以下をいじるかたちはどうかと…
もしかしてライブCDみたいなお試し環境やポータブルVimみたいな方向性なんですか。
MacVim Kaoriya の事を考えると $VIM は /Applications/MacVim.app/Contents/Resources/
になるので、まず初心者はそんな所を触らないというのを留意していただければ。
(本当の Vim 初心者が MacVim Kaoriya をどのくらい使ってるかは置いといて)
@thinca
パッケージに直接 $VIM/_vimrc を入れた場合との違いは何があるでしょうか。
ないですね。加えて $HOME/_vimrc
の自動生成はやはりアレなので、自動生成自体なしかなぁ…
switchesを置く位置は了解。 switches/catalog
はいまの場所のままにするとしても、
enabledの位置は ~/
以下のどこかにできたほうが良さそうですね。
ちょっとユーザーストーリーをまとめたほうが良いかも。
達成すべきユーザーストーリー的なものまとめてみます。
以上は結構重要だと考えてます。その他、雑多なところ。
とりあえずこんなところ。
BTW: Xubuntu に kaoriya vim入れたらデフォが enc=euc-jp(japan) になった。ありえないわw
~/_vimrc
の先頭数行になにかおまじない(コメント内にキーワードとか)を書いておくとデフォルト設定は何もしない
というのはどうだろう。昔はバッファで読まなきゃで嫌だったけど、今ならそんなでもない気がする。
~/_vimrc
の先頭数行になにかおまじない(コメント内にキーワードとか)を書いておくとデフォルト設定は何もしない というのはどうだろう。昔はバッファで読まなきゃで嫌だったけど、今ならそんなでもない気がする。
それは、コメントに書くという点と、本来意識したくない kaoriya の設定を意識する必要があるという点が良くない気がします。
僕も kaoriya を意識した vimrc を書かせるのは筋が悪いと思う
んじゃぁスイッチファイルで良いの?
デフォ設定はある前提で、それをアップデートに影響を受けない形で無効化する手段としてどういう方法が良いのかな?
.zipではなくてsetup機能付きの.exeで配布するとか。 (setup内で今の環境を検知&表示してユーザにいろいろ選択させたりするとかしないとか)
世の中いろいろ言う人には2種類いて
・初心者で分からん!と言う人 ・中級者で勝手な事するな!と言う人
後者はどの環境でも同じvimrcを使おうとして、kaoriya版の設定が邪魔になる。 前者はkaoriya依存でもなんでも良いので迷いなく設定したい。
中級者は上級者になるにつれ「kaoriya版便利だから使い続ける派」と「自前でビルドするよ派」に分かれてるんだけど、この使い続ける派は実際なんとかなるはずなので放置で良くて、初心者だけ救えればkaoriya版としての役目が遂行できるんじゃないなか。 koron さんはどの層をターゲットにしてるんだろう。
先のユーザーストーリーに書いたことから読み取れるかもだけど 初級に軸足を置きつつ、可能な限り上級側にもって感じで。
@h-east
.zipではなくてsetup機能付きの.exeで配布するとか。
NSIS でできるけど…ちょっと面倒かも。 個人的にはインストーラーには抵抗あるけど、今時なら気にしなくても良いかしらね。 VimならZIPよりも小さくなる可能性もありそうだし。
ただちょっと本題とは違う(どのユーザーストーリーを実現できるのかわかりにくい)かなぁ。
~/.vim/switches
とかに no_vimrc_example.vim
とか no_plugins_kaoriya_plugin_hz_ja.vim
とかがあれば読み込まないみたいな感じではどうでしょうか?
Kaoriya 版の vimrc 自体を読まないのは no_kaoriya.vim があれば最初で finish しちゃう。
現状と違うのがファイルの中身まではみなくて、ファイルの存在だけでロードの有無を判別する。
初心者ユーザは ~/.vim/switches とか触らないだろうから良きに計らった Vim が使える。 デフォルトが嫌なユーザは面倒だけどファイル置いてねと。
システムのgvimrc
を厄介に感じたことがあります。
設定を一つの_vimrc
で管理しようとすると、gvimrc
が設定する部分は上書きしにくいのです。
先に読み込まれている _vimrc
から gvimrc
の読み込みを簡単に止められると良いかなと思います。
現在 gvimrc
の読み込みを中止する g:gvimc_local_finish
などは特定のファイルが無いと発動しません。
gvimrc
以外の分は、最後に読まれている自分の_vimrc
で上書きするればどうにかなるような気もします。
今一番問題になっているのは、
$HOME/_vimrc
を置くことでデフォルトの設定が消えると混乱するので消したくない$HOME/_vimrc
を置いただけでデフォルトの設定は無効になってくれるとラクチン
と言う、完全に相反する要望が出ていることだと思います。
両方を採用することは当然無理なのでどちらかが妥協することになりますが、ここで、初級に軸足を置きつつ、可能な限り上級側にもって感じで。
とのことなので、まあスキルレベルを考えても中級者以上の方に多少の負担をしてもらうことになるかな、と思います。 ここまで、認識に問題はないでしょうか? 問題がなければ、以降は「デフォルトの設定を無効化する方法の提供方法」に話題を絞って議論できるかと思います。
もうちょいいろんな意見を聞いてもええやん。まとめとか方向性とかは本人( @koron さん)にまかせたらええやん。
もうちょいいろんな意見を聞いてもええやん。
はい、なので、
ここまで、認識に問題はないでしょうか?
ここでみんなの意見を確認したつもりです。わかりづらかったらすいません。
まとめとか方向性とかは本人( @koron さん)にまかせたら
@koron さんが、vim-jp 公式のデフォルトにしたいと言っていたので、みんなで取り組むべき問題かなーと考えていたんですが、流石に気が早すぎましたかね。
ところで、1台のWindowsマシンを複数のユーザで使用する(その中にVimmerが複数)環境は考慮する必要はないでしょうか? この場合は個別の設定や _viminfo を $VIM に置くのはよろしくない感じかな?
@wiredool Thanks!
@thinca
スキルレベルを考えても中級者以上の方に多少の負担をしてもらうことになるかな、と思います。
同意です。ただ、ドキュメントはしっかりしておくべきですね。
@h-east
1台のWindowsマシンを複数のユーザで使用する(その中にVimmerが複数)環境は考慮する必要はないでしょうか?
私も最初は ねーだろ、そんなの と思ってたらなんどか要望が来ましてね… vimrc_local はその時にできた機能なんです。 個人的には要らないですが、いつ引き合いがあるかはわかりません。
最初におすすめ設定ファイルを $HOME/_vimrc にコピーしてもらうというのはやっぱりなしですか。
オススメの設定の先頭で
if filereadable(expand("~/_vimrc"))
finish
endif
でいいと思うけどなー。
@ynkdir
ダウンロードやインストールした直後に起動して(日本語で)使いやすい(=デフォルト設定)
に反するので、手動で何かしてくださいってのはなしです。
@mattn
- ユーザがカスタマイズする時に、大きな断絶がないようにする
- デフォルト設定がいきなり全部なくなったらびっくりしてしまう
一見これに反しそうにみえるけど、そうはならないまだ書いてないアイデアはありますか?
一見これに反しそうにみえるけど、そうはならないまだ書いてないアイデアはありますか?
今ちょっと考えたんですが、
デフォルト設定がいきなり全部なくなったらびっくりしてしまう
通知を行うことくらいはできるかもしれません。少し煩雑ですが。
" $VIM/vimrc (システムデフォルトvimrc)
" なんか適当なマーク用のファイル。なんでもいい
let s:using_default_mark_file = $VIM . '/.using_default'
if filereadable('~/_vimrc')
" ユーザが作った vimrc が見つかった場合
if filereadable(s:using_default_mark_file)
" ユーザは新しく vimrc を作った
" デフォルトの設定が適用されないことや必要ならコピーする旨を通知
call confirm('ついに vimrc を作ってしまったのですね…', 'OK')
call delete(s:using_default_mark_file)
endif
elseif !filereadable(s:using_default_mark_file)
" ユーザが作った vimrc がない(=vimを新しく始めるユーザである)ことを記録しておく
call write([], s:using_default_mark_file)
endif
やるならもうちょっとしっかりやる必要がありますが。 (こうしたい、と言うよりも、こういう方法もあるよ、程度に受け取ってください)
デフォルトの設定で物足りなくなった人って、まず人のコピーから始めると思うんです。
僕が考える初心者の道のり
この3の地点では、既にvimrcに興味があって、_vimrcを置いた事は自分で分かっているはずかと思います。 なので、デフォルトに戻ってもまったく大丈夫だと思います。
1つアイデア。gvimrc系は省略&UNIX系の話は無視して書きます。
$VIM/vimrc
- 無しか超最小限。たとえば nocompatible
だけとか。ここに入れるものは慎重に議論。$VIM/vimrc_firststep.vim
- オススメのデフォルト設定。副作用がないものを書く。実際の位置は別の場所で良い。$VIM/_vimrc
- source vimrc_firststep.vim
と $HOME/_vimrc
を書く際の注意事項のコメントだけ書く。:VimrcSetting
初心者がファーストステップを踏み出す際のハードルを少しだけ上げ、中級者以降に配慮したことになると思う。
投稿タイミングシンクロしすぎw
call confirm('クックック...デフォルトのvimrcがやられたか…', 'OK')
初心者像を まず人のコピーから始める としたアイデアは良さそう。
コピーの元となるいくつかの設定を同梱配布するってアイデアも行けそう。
そしてウィザードへ…。
そして thinca版、ujihisa版、shougo版などのデフォルト設定が同梱されます。
誰が使うんだw
「まずあの人達がどう使ってるか知りたい」「同じ環境で使ってみたい」ってのがあるかも、とw
330 より。
Kaoriya版で用意されている
vimrc
ファイルは常に強制的に読み込まれるにも関わらず多くのことを設定していて、自分の設定を持っているユーザからは邪魔になることがあるようです。実際、このvimrc
ファイルを消しているユーザもいます。専用の処理を書くことなく無効化する方法が欲しいです。