Vim Part24
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2014/10/12(日) 22:56:29.52http://www.vim.org/
前スレ
Vim Part23
http://peace.2ch.net/test/read.cgi/unix/1393376019/
関連情報は>>2-6あたり
0233名無しさん@お腹いっぱい。
2014/11/23(日) 18:19:31.11:h nnoremap
:h innoremp
で分かる
で、vim-jpは
http://vim-jp.org/vimdoc-ja/
に以下の様なドキュメントがコピーされているから、(:hでみれるやつ)
Emacs-w3m等から見たいとか、そういうことはできるけども
基本 :h にお任せ
基本
□ quickref
□ sponsor
ユーザーマニュアル目次
□ usr_toc
初級編
□ usr_01
□ usr_02
0234名無しさん@お腹いっぱい。
2014/11/23(日) 18:21:34.490235名無しさん@お腹いっぱい。
2014/11/23(日) 23:40:10.41Vim は Ctrl + Shift + アルファベット みたいなキーバインドは割り当てられないよ!
不便すぎてごめんねぇ
Alt + Shift + アルファベット ならできるんだけどね
0236名無しさん@お腹いっぱい。
2014/11/23(日) 23:59:45.870237名無しさん@お腹いっぱい。
2014/11/24(月) 00:08:13.67まじかw
使えないならば tmux や terminatorに 安心して割り当てられるな
0238名無しさん@お腹いっぱい。
2014/11/24(月) 01:35:24.51ユーザーの入力を受け取るために
let res = input('キーを入力してください:')
のようなソースがあります。
このままだと、ユーザーが何か文字を入力してEnterを押すと、入力の窓が閉じます。
Enterで閉じるのではなく、何かキーを一度押したら自動で窓を閉じたいのですが、可能でしょうか?
0239名無しさん@お腹いっぱい。
2014/11/24(月) 02:17:57.710240238
2014/11/24(月) 03:02:44.31ご返信ありがとうございます。
getchar()で1文字取得できたのですが、
1文字入力後に
「続けるにはEnterを押すかコマンドを入力してください」
という文が表示されて結局Enterを押す事になってしまいます。
let res = getchar()
の後に
execute 'ccl'
や
execute 'normal <cr>'
を試しましたが上の文は消せませんでした。
0241名無しさん@お腹いっぱい。
2014/11/24(月) 03:10:37.92とりあえずスクリプト内で一時的に let &ch = 5 とかするとか、echon で改行を抑制するとか。
にたよな事例 http://anago.2ch.net/test/read.cgi/software/1379912425/933
0242名無しさん@お腹いっぱい。
2014/11/24(月) 03:11:43.650243238
2014/11/24(月) 03:58:57.68確かにgetchar()の前にechoで出力してました。
redrawで綺麗に消せました
0244名無しさん@お腹いっぱい。
2014/11/24(月) 17:37:52.12具体的には
nnoremap <Space> <PageDown>
この<Space>はreadonlyではない時には何かしらのprefixになっているとして
うまく設定するやり方はないでしょうか?
今は
if v:readonly == 1
nnoremap <Space> <PageDown>
endif
と書いて構文エラーで跳ねられています
0245名無しさん@お腹いっぱい。
2014/11/24(月) 17:58:59.86最近の関数つかえばマシなのが出来る気がするけど。>>244
0246名無しさん@お腹いっぱい。
2014/11/24(月) 18:03:29.730247名無しさん@お腹いっぱい。
2014/11/24(月) 20:03:59.05マッピング設定する関数作って
autocmd BufEnter と BufLeaveで設定のロード、アンロードするのが最初に思いついた
0248名無しさん@お腹いっぱい。
2014/11/24(月) 20:22:29.41au CursorHold * :echo "setbufvar()の第一引数にexpand('<abuf>')をそのまま使うとハマルのさ!"
au CursorHold * :au! Dorompa
aug END
0249名無しさん@お腹いっぱい。
2014/11/26(水) 08:03:16.89リードオンリーのバッファは開いた時から閉じるまでリードオンリーってことでいいんだよね?
最近のvimなら <buffer><nowait> オプションつけてマップすればいいと思う
function! s:rospace()
if &readonly == 1
nnoremap <buffer><nowait> <Space> <PageDown>
endif
endfunction
autocmd BufRead,BufNewFile * call s:rospace()
たぶんこれでできるんじゃないかなぁ
autocmdの設定とか微妙だったら適当に変えて
augroupつけるとか
0250名無しさん@お腹いっぱい。
2014/11/26(水) 09:31:11.23ありがとう
&ro(&readonly) や ? : の三項演算子に <lt>の具体的な活用、
autocmd aug au, など便利なのを紹介してくれて解決できそうです
---
>リードオンリーのバッファは開いた時から閉じるまで
多くの場合は command! RO :set readonly! で途中で切り替えてます
ファイル観覧中など一時的に編集したくない時にxやuの誤爆を防ぐ意味で:RO
gitのdiffや、vim-gitgutterにcommitの-v でほとんど回収できるミスですが
未然に防ぎたいのでread onlyに切り替えます
Emacsのview.elが誤爆封じと観覧操作の簡易化の2つを持っていたので
少し移植してみようかなと思ってたら、今回のように序盤でつまずいてしまいました
0251名無しさん@お腹いっぱい。
2014/11/26(水) 09:32:36.41リンクミス 失礼しました
0252名無しさん@お腹いっぱい。
2014/11/26(水) 13:42:06.95それはたぶん indent/python.vim の方の問題で、
vimrc はそれであってるけど vim さんがふたつぶんインデントしようとしてる模様
vim-python-pep8-indent という plugin があり、これを入れれば解決する
0253名無しさん@お腹いっぱい。
2014/11/26(水) 13:47:17.26http://d.hatena.ne.jp/thinca/20100205/1265307642
ノーマルモードでaに関数を割り当てる場合
nnoremap a :<C-u>call <SID>func()<CR>
って書いたらaで関数実行できますが
nnoremap a :call <SID>func()<CR>
でも実行できました
この<C-u>っていうのが何なのか調べようと思ったんですが:h C-uでも:h <C-u>でもヘルプに載ってません
これの意味を教えてください
0254名無しさん@お腹いっぱい。
2014/11/26(水) 14:22:33.11行頭まで全削除
選択してたり数字が直前に打たれてたりすると、コマンドモードに入った時に自動で少し入力される
それを消すために入れてる
:help c_CTRL-U
ヘルプだとコントロールキーは CTRL と大文字
0255名無しさん@お腹いっぱい。
2014/11/26(水) 14:41:37.24ありがとうございます
0256名無しさん@お腹いっぱい。
2014/11/26(水) 17:34:02.030257名無しさん@お腹いっぱい。
2014/11/26(水) 17:35:13.950258名無しさん@お腹いっぱい。
2014/11/26(水) 17:35:53.990259名無しさん@お腹いっぱい。
2014/11/26(水) 22:26:39.300260名無しさん@お腹いっぱい。
2014/11/26(水) 22:30:04.29:h n_V
0261名無しさん@お腹いっぱい。
2014/11/26(水) 23:04:09.82E149: 残念ですが n_V にはヘルプがありません
ってなりました
0262名無しさん@お腹いっぱい。
2014/11/26(水) 23:12:01.870263名無しさん@お腹いっぱい。
2014/11/26(水) 23:47:48.88:h V
:h linewise-visual
0264名無しさん@お腹いっぱい。
2014/11/27(木) 16:52:37.12真ん中の文字をキャプチャして表示したいんですがabcって表示されます
指定した部分だけをキャプチャするパターンはどう書けばいいですか?
0265名無しさん@お腹いっぱい。
2014/11/27(木) 17:01:47.740266名無しさん@お腹いっぱい。
2014/11/27(木) 17:03:16.920267名無しさん@お腹いっぱい。
2014/11/27(木) 17:04:51.36echo matchlist("abc",'.\(.\).')[1]
0268名無しさん@お腹いっぱい。
2014/11/27(木) 18:29:28.030269名無しさん@お腹いっぱい。
2014/11/27(木) 18:44:18.93たすかりました
0270名無しさん@お腹いっぱい。
2014/11/27(木) 19:30:57.84構文強調のパターンとか変態の域だけど(\zs\zeとかその辺の派生だろか)。
0271名無しさん@お腹いっぱい。
2014/11/27(木) 19:35:14.150272名無しさん@お腹いっぱい。
2014/11/27(木) 21:43:53.19\vは\cと同じでどこに書いてもいいのなら良かったのに
/だよもん/もんだよ/だもよん とタイプしてから気付いても後の祭りorz
0273名無しさん@お腹いっぱい。
2014/11/27(木) 21:44:34.37/だよもん|もんだよ|だもよん だよもん
0274名無しさん@お腹いっぱい。
2014/11/28(金) 00:17:54.59/\([だよもん]\)\%(\1\)\@!\([だよもん]\)\%(\1\|\2\)\@!\([だよもん]\)\%(\1\|\2\|\3\)\@![だよもん]/
三文字目までのパターンなら &re の値がいずれでもマッチするんだけど。
0275名無しさん@お腹いっぱい。
2014/11/28(金) 01:30:15.670276名無しさん@お腹いっぱい。
2014/11/28(金) 11:56:42.37echo "1^M2"で2しか表示されません何故ですか?
echo "1\r2"もそうでした
echo "1\n2"はちゃんと改行されて1と2が表示されました
^M \r \nってどう使い分けるものですか?
^MはCTRL+V CTRL+Mで入力しました
0277名無しさん@お腹いっぱい。
2014/11/28(金) 11:58:33.770278名無しさん@お腹いっぱい。
2014/11/28(金) 12:06:54.710279名無しさん@お腹いっぱい。
2014/11/28(金) 17:21:38.550280名無しさん@お腹いっぱい。
2014/11/28(金) 17:30:32.890281名無しさん@お腹いっぱい。
2014/11/28(金) 20:11:01.36はい、Vim上でechoしてます
コマンドモードやVimスクリプトからechoしてます
とりあえずシェルスレらしいので向こうので質問し直させて頂きました
0282名無しさん@お腹いっぱい。
2014/11/28(金) 20:21:04.70回答になってないが、改行付きで出力するなら、
echo printf("1\n2")
でいんやない?
0283名無しさん@お腹いっぱい。
2014/11/28(金) 21:58:33.89どうも :echo での ^M は謎の挙動をするようだ。
:echo "jjjjj^Mkk" を実行した場合、 "kkjjj" が表示される。
つまり、^M の後の文字で ^M の前の文字を上書きして表示されるのだ。
だから :echo "1^M2" の場合、 1 が 2 で上書きされている。
何でこんな挙動になっているのかはよくわからん。
0284名無しさん@お腹いっぱい。
2014/11/28(金) 22:04:53.27(CARRIAGE RETURN 復帰コード: 行頭に戻る。改行を含まない)を
地で行っているかららしい。
ちなみに改行の制御文字は ^J 。
:echo "jjjjj^Jkk" だとちゃんと改行される。
0285名無しさん@お腹いっぱい。
2014/11/28(金) 22:10:43.66キャリッジリターンとラインフィードは別物
0286名無しさん@お腹いっぱい。
2014/11/28(金) 22:32:25.580287名無しさん@お腹いっぱい。
2014/11/28(金) 22:51:50.630288名無しさん@お腹いっぱい。
2014/11/29(土) 00:41:54.03Vim関係ないと断言したのに結局Vimの話だったのが悔しいんだね
わかるよー
0289名無しさん@お腹いっぱい。
2014/11/29(土) 01:48:02.260290名無しさん@お腹いっぱい。
2014/11/29(土) 08:05:45.600291名無しさん@お腹いっぱい。
2014/12/01(月) 07:37:45.09com! -count=0 -nargs=+ TEST :echo <count> <q-args>
暗黙の指定「-count=0」が機能するのは第一引数が数値型以外の場合みたいだ。
もっと単純な例 :1b2
0292名無しさん@お腹いっぱい。
2014/12/06(土) 14:25:55.591文字ずつ入力すれば重なりませんでしたが
0293名無しさん@お腹いっぱい。
2014/12/07(日) 11:14:07.96ターミナルが対応してなければ何やっても無駄
対応してればset ambiwidth=doubleで解決するはず
0294名無しさん@お腹いっぱい。
2014/12/10(水) 09:30:06.850295名無しさん@お腹いっぱい。
2014/12/10(水) 09:45:36.020296名無しさん@お腹いっぱい。
2014/12/10(水) 09:47:19.430297名無しさん@お腹いっぱい。
2014/12/11(木) 18:15:51.740298名無しさん@お腹いっぱい。
2014/12/19(金) 12:02:01.88C:\test\d%i%r>C:\vim\gvim -u NONE -N --remote hello.vim
"%" 混じりのディレクトリから--remote使うとうまくいかないね。
0299名無しさん@お腹いっぱい。
2014/12/19(金) 12:02:49.090300名無しさん@お腹いっぱい。
2014/12/19(金) 16:49:27.54大量の行をヤンクすると途中の行までしか含まれません
どうすればいいですか
0301名無しさん@お腹いっぱい。
2014/12/19(金) 18:47:51.9754057 81826 2633805
cygwinでとりあえずこんだけの量をヤンクしてペーストしたら
vimが落ちたな
ついでにNTEmacsで検証したがヤンク(貼り付け)した瞬間に、
しばらく動けなくなる怪現象に遭遇した
Linuxではテストしていないけれども
極端に多い編集は
sed とか awk使ってリダイレクトした方が良いかもしれない
0302名無しさん@お腹いっぱい。
2014/12/19(金) 19:25:01.85:h viminfo-<
&viminfoの規定値 '100,<50,s10,h,rA:,rB: の50の部分を増やせばいいんじゃないかな。
0303名無しさん@お腹いっぱい。
2014/12/23(火) 11:55:22.51しようとしたら make の時点で
unable to open output file 'objects/eval.o
といわれて止まってしまって、新しく hg clone し直したらそっちからは普通にうまく行ったんだけど
なんだったんだろう、僕がなんかしたのかな
(もう再現もできないし大きな問題もないので単なる興味)
0304名無しさん@お腹いっぱい。
2014/12/23(火) 17:00:15.01sudo make
とかやったんじゃない?
0305名無しさん@お腹いっぱい。
2014/12/23(火) 17:27:41.31./configure
make
make install
0306名無しさん@お腹いっぱい。
2014/12/23(火) 21:41:38.73368行目にhaskellの設定を忘れているのだろうか?
以下の様にhaskellは'--'でコメントアウトすると追加すると
haskellで動くようになった
autoload/caw.vim- \ 'h': '//',
autoload/caw.vim: \ 'haskell': '--',
autoload/caw.vim- \ 'haml': '-#',
0307名無しさん@お腹いっぱい。
2014/12/23(火) 22:15:20.39>>305 hg clone しなおさなくても…ってことですかね、覚えときますありがとう
0308名無しさん@お腹いっぱい。
2014/12/23(火) 22:16:04.36ぷるりしてあげたらいんじゃね?
0309名無しさん@お腹いっぱい。
2014/12/23(火) 22:19:33.76:h caw には haskell の名前が出てるのでそんな感じが漂ってますね。
pull req 送ってみては
0310名無しさん@お腹いっぱい。
2014/12/23(火) 23:44:44.04pull req, ぷるり で何言ってるのか分からなかった
http://kik.xii.jp/archives/179
自分は今回 git から覚えることにする
pull request はそんなわけで無理っぽい
0311名無しさん@お腹いっぱい。
2014/12/24(水) 00:23:15.750312名無しさん@お腹いっぱい。
2014/12/24(水) 16:14:47.27- <C-o> 元いたカーソル位置に戻る
- <C-i> 〃進む
というのがありますが、o と i は何かの英単語の略とかなのでしょうか?
(意味が分かるとショートカットキーを覚えやすいので質問してみました><)
0313名無しさん@お腹いっぱい。
2014/12/24(水) 19:35:41.16Githubのアカウントさえあればgit知らなくてもPRできるよ
ログインして、
github上で該当のソースコードを開く
→ コードの右上あたりの Raw Blame History の隣の鉛筆マークから編集モードに入る
→ 該当箇所を修正
→ 適当にタイトル書く(「hasckell用設定の追加」とか。本文は空欄でも可)
→ Propose file change をクリック
→ Pull requet しますか?みたいな確認画面があった気がするのでOKする(うろ覚え)
多分これでPRが作成されるはず
最後の方は確認してないので間違ってたらすまん
Qiitaかどっかにまとめてあった気がするけどみつからなかった・・・
0314名無しさん@お腹いっぱい。
2014/12/24(水) 20:11:17.50なんとかGitHubアカウントから
issueやってみました
ありがとう
0315名無しさん@お腹いっぱい。
2014/12/24(水) 22:52:11.89英語版のヘルプ(:h CTRL-O@en)見れば分かるがOlderだな。
CTRL-I は知らん。
0316名無しさん@お腹いっぱい。
2014/12/24(水) 23:08:39.56<C-i>はただ単に<C-o>の関連で隣に置いただけじゃないかな?
hjklも横一列使っただけで意味はないんだし
0317名無しさん@お腹いっぱい。
2014/12/24(水) 23:36:17.76>>316
ありがとうございます。納得です。
コマンドでヘルプ見てみるのはいいですね。
これで次からは大丈夫だと思います。m(_ _)m
0318名無しさん@お腹いっぱい。
2014/12/25(木) 00:54:00.89invert の "i" じゃね (適当
0319名無しさん@お腹いっぱい。
2014/12/25(木) 10:14:50.980320あ
2014/12/25(木) 19:25:40.31/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::://ヽ:::::::::::::::|
l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::// ヽ::::::::::::::l
l:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::/:::「'ヽ:::::::::::// ヽ:::::::::::|
|::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ノl:::ノ l:::::::/ ヽ::::::::|
ノ:::::::::::::::::::::::::::::::::::::::::::::::::::::/ ゙゙ ノ:::/ ,,;;;;;;,, ,,,,ヽ:::::l
):::::::::::::::::::::::::::::::::::::::::::::::/ ノ/ __,'''i: ('''__):::l
)::::::::::::::::::::::::::::::::::::::::::::::::::/  ̄ ̄ン:. :「 ̄`ヾ
1:::::::::::::::::::::::「 `┤l:::::::::::::::::l  ̄ , ヽ ̄ l
`l:::::::::::::::::::::ヽ :l li:::::::::::::/ ヽ /´ `l |
ヽ::::::::::::::::::::::\_」 lヽ::::/ .l !:-●,__ ノ /
ノ:::::::::::::::::::::::::::ノ | l `゙゙ i ,,;;;;;;;;;;;;;;;;;;;;, /ヽ
,/ ヽ::::::::::::::::::::::( l l::::::::.. /.:''/´ ̄_ソ / `ヽ
ヽ:::::::::::::::ヽ | l:::::::::::... /::// ̄ ̄_ソ / \ ヴッ!!
ヽ:::::::\| l::::::::::::::::... / :::.ゝ` ̄ ̄/ / ヽ
ヽ:::l l:::::::::::::::::::..  ̄ ̄;;'' / ヽ
l l;;;;;;:::::::::::::::.....;;;;............;;;;;;''ノ l
l l '''''''''''''''''''''''''''''''''''''' ̄l | |
http://www.youtube.com/watch?v=z2qK2lhk9O0
0321名無しさん@お腹いっぱい。
2014/12/25(木) 19:35:49.72私、latex使いなのですが今までwindowsのwinshellでして
この前調べたら化石ソフトらしいんですよ
ついでにmacに乗り換えまして、texをインストールしたら
texshopが勝手についてきたんでふ
デフォルトブラウザのsafariを使ってる僕は
とりあえずtexshopを使ってるわけ
ところがこれめちゃ使いにくい
ファイル構造は見にくいし、ショートカットもwinshellとぜんぜん違う
コンパイルも手動で何回かしないといけないしめんど〜(-_-)
そこでvim教なるものを知ったので入信しようと思うのですが、
vimのtex入力はいいものですかね
0322名無しさん@お腹いっぱい。
2014/12/25(木) 20:29:02.780323名無しさん@お腹いっぱい。
2014/12/25(木) 21:43:45.24この時点ですでにキモい
0324名無しさん@お腹いっぱい。
2014/12/25(木) 21:44:45.80タダなんだし試してみればいいのではなかろうか
0325名無しさん@お腹いっぱい。
2014/12/26(金) 00:40:38.03http://s1.gazo.cc/up/112809.jpg
0326名無しさん@お腹いっぱい。
2014/12/26(金) 00:47:09.07これはどうなんや?
ttps://github.com/vim-perl/vim-perl
0327名無しさん@お腹いっぱい。
2014/12/26(金) 01:38:11.60~/.vim/bundle/ にて
cp vim-perl/syntax/perl.vim ../syntax/perl.vim
でも変わりません
0328名無しさん@お腹いっぱい。
2014/12/26(金) 18:24:06.32>>324 さんのいうとおりだけど、あえていうなら
・日本語に対しては活かし切れないところもあるものの、vimの編集能力は際立ってる
・ショートカット系は他のとはかなり違うと思うけど、それはどちらにせよ慣れだ
・自動コンパイルは可能(設定がいるけどね)。
・snippet とかも適宜できるようにできるけど、
このへんの機能だけで比べた時にそういったIDEを上回るということはない気がする。
・個人的には TeX も他のコードもVimで書けるというのは利点。
ともかく試してみるのがいいとおもいますよ。入信前なら Emacs も試してみるとよいかもしれない
0329名無しさん@お腹いっぱい。
2014/12/26(金) 22:16:06.77が全盛だった頃と比べれば、めちゃくちゃ至れり尽くせりになっている。
例えば表をグラフィカルにかけたりギリシャ文字のパレットが用意されていたりとか。
個人的にはそういった作業がほとんどCUIで出来てしまうのが魅力だとおもう。
0330名無しさん@お腹いっぱい。
2014/12/26(金) 22:17:43.63○CUIで出来てしまうのがVimの魅力だとおもう
0331名無しさん@お腹いっぱい。
2014/12/27(土) 01:01:24.81TeX書くのにしか使わないならVimはやめとけ
まずは他の専用ソフト試したほうがいい
ショートカットなんて意外とすぐ覚えられるもんだし
以前色々MacやWinで試したけど、Texmakerが機能がシンプルで見た目よかった
他に有名ドコロだとTeXnicleとかTexWorksかな
WinとMac両方で使えるのも結構ある
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?TeX%E7%94%A8%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF
0332名無しさん@お腹いっぱい。
2014/12/27(土) 01:03:44.42ショートカットが使いにくいのって、ソフト関係なくてWinとMacの違いのせいじゃない?
だいたいWinのCtrlはMacのCommandに対応してる
なんかスレチすまん
■ このスレッドは過去ログ倉庫に格納されています