facebook twitter hatena line google mixi email
★お気に入り追加


■ このスレッドは過去ログ倉庫に格納されています

  • 1
  •  
  • 2015/01/13(火) 13:05:45.21
主にWindows環境でのVimについてのスレッドです。

本家: http://www.vim.org/
Windows版バイナリ配布: http://www.kaoriya.net/
vim-jp: http://vim-jp.org/
VimWiki: http://vimwiki.net/
ctags 日本語対応版: http://hp.vector.co.jp/authors/VA025040/

名無しのVIM使い(スクリプト) http://nanasi.jp
spanish passion Linux(全オプション) http://www15.ocn.ne.jp/~tusr/
ずんWiki http://www.kawaz.jp/pukiwiki/?vim

関連リンク
UNIX板 Vim Part22: http://peace.2ch.net/test/read.cgi/unix/1365071542/
MacVim 再び: http://anago.2ch.net/test/read.cgi/mac/1133534694/
前スレ vim Part 5: http://anago.2ch.net/test/read.cgi/software/1379912425/

ここまで見た
  • 828
  •  
  • 2018/10/24(水) 17:11:24.99
06'17 Mastering Bash
06'11 GNU Octave Beginner's Guide
10'15 LaTeX Cookbook
08'16 Unreal Engine: Game Development from A to Z
02'12 gnuplot Cookbook
09'12 Blender Game Engine: Beginner's Guide
08'14 Blender 3D Basics Beginner's Guide Second Edition
06'13 SDL Game Development


らの行を選択して、ソーティングしたいとします。但し左の数字列は 出版月'出版年 です
時系列で降順ソートにしたいです。同じ出版年月の本内の順序は問いません

Bashだと
sort --field-separator=\' -n -r --key=2,1
でできました
Vimだとどうやるのか、ちょっとうまくいきません

ここまで見た
  • 829
  •  
  • 2018/10/24(水) 19:22:31.95
>>828
同じじゃない?
1) カーソルが一番上にある状態で Shift-v でビジュアルモードに入り、G で最終行まで選択して反転させる
2) : (セミコロン) でコマンド入力 (実際には :’<,’> と表示される) モードになるので続けて !sort <オプション> を実行
実際には以下のようになる
:’<,’>!sort ―field-separator=¥’ -n -r ―key=2,1

それともOS (shell?) コマンドの !sort じゃなくてvim内蔵の sort でやりたいけどできないってこと?

ここまで見た
  • 830
  •  
  • 2018/10/24(水) 19:51:07.75
全ての行が対象なら:%使った方が早い

ここまで見た
  • 831
  •  
  • 2018/10/25(木) 14:12:09.36
!は先頭か末尾かで意味変わるのかよ・・・
連番挿入ってひょっとしてvimで!seqした方が手っ取り早いのか?

ここまで見た
  • 832
  •  
  • 2018/10/25(木) 15:40:44.63
ぐへへ

let Sort_by={list,fn -> sort(list,{a,b -> fn(a) > fn(b) ? 1 : -1 })}
let Target={line->substitute(line,"^\\(\\d\\d\\)'\\(\\d\\d\\)",'\2\1',"i")}
call setline(1,Sort_by(getline(1,'$'),Target))

ここまで見た
  • 833
  •  
  • 2018/10/25(木) 17:17:04.84
これでどうやろ
久しぶりに書いたんで自信ないけど

command! -nargs=* -range=% -bang Sortby call s:Sortby("<bang>",<line1>,<line2>,<f-args>)

function! s:Sortby(bang,line1,line2,pattern,replace)
let l:Target={string -> substitute(string,a:pattern,a:replace,"i")}
let l:Sort_by={list,fn -> sort(list,{a,b -> fn(a) > fn(b) ? 1 : -1 })}
call setline(a:line1,l:Sort_by(getline(a:line1,a:line2),l:Target))
endfunction


:Sortby ^\(\d\d\)'\(\d\d\) \2\1

ここまで見た
  • 834
  •  
  • 2018/10/25(木) 17:17:44.29
あ bangで反対ソートにするつもりだったけどやり忘れた

ここまで見た
  • 835
  •  
  • 2018/10/25(木) 18:36:15.79
100とかくらいまでなら、試してないけど
100i1<cr>ggVGg<c-a>
とかでいけるんじゃないかね

ここまで見た
  • 836
  •  
  • 2018/11/03(土) 10:34:41.18
行の最初に挿入か置換するのどうするの?
0で行の最初にカーソル持ってきてPを押すと2文字目にペーストされてしまう

ここまで見た
  • 837
  •  
  • 2018/11/03(土) 11:00:33.53
>>836
挿入ならI置換なら^
左側にペーストってあったっけ?
挿入してレジスタペーストかな?

ここまで見た
  • 838
  •  
  • 2018/11/03(土) 11:33:45.24
>>836
pが右、Pが左

ここまで見た
  • 839
  •  
  • 2018/11/03(土) 13:33:53.56
>>837
>>838
どうもありがとうございます!

ここまで見た
  • 840
  •  
  • 2018/12/14(金) 10:39:55.81
コマンドラインモードで範囲内の文字列の切り取りとペーストを一度に行いたいです。

例えば

:3,7何とか

とすると、「3行目から7行目までが削除され、かつカーソル位置にペースト」
できれば嬉しいのですが、方法は有るでしょうか?
削除が必要なければ t を使えばいいのですが。

vim のデフォルトの機能でお願いします。

ここまで見た
  • 841
  •  
  • 2018/12/14(金) 12:29:42.87
>>840
3,7m.
でいいじゃん?

ここまで見た
  • 842
  •  
  • 2018/12/15(土) 10:09:00.39
>>840
何をしたいのかいまいちよくわからん

ここまで見た
  • 843
  •  
  • 2018/12/15(土) 15:04:27.04
>>841
できました。
ありがとうございました。

>>842
まさに >>841 で実現できることです。


ところで、こういう t や m などの他に
コマンドラインモード内で使えるもので何があるか調べたいのですが、
ググり方あるいはヘルプの出し方が分かりません。

ググっても、便利な機能やテクニックとして一部は載っていますが、
一覧表は無いのでしょうか?

ここまで見た
  • 844
  •  
  • 2018/12/15(土) 22:36:26.33
>>843
:h :index
exコマンド数600個近くあるけどな!

ここまで見た
  • 845
  •  
  • 2018/12/16(日) 02:50:07.86
vimはシェルみたいに入力補完できるから:hの後にTab連打すれば一応コマンド一覧は出せる
:h hならh開始、、:h wqならwq関連、:h CTならCtrl関連と頭出しもできる
同じ操作系列の抽出?知らない子ですね・・・

ここまで見た
  • 846
  •  
  • 2018/12/18(火) 20:16:40.07
>>844 >>845
ありがとうございます。
尋常じゃない多さですね。

ここまで見た
  • 847
  •  
  • 2018/12/18(火) 23:59:08.33
vimのコマンドは大量だけどちょっと覚えればいいのがいい
込み入った作業だと結局ググらにゃならんが

ここまで見た
  • 848
  •  
  • 2018/12/21(金) 05:55:00.21
検索とか置換とか基本機能のショートカットくらい表示しても罰は当たらないのでは?
nanoは色々残念だし

ここまで見た
  • 849
  •  
  • 2018/12/21(金) 14:42:13.65
エディタにあまり多くを求めない生き方もありだよ
本当はnanoで十分な人多いんじゃないの

ここまで見た
  • 850
  •  
  • 2018/12/21(金) 15:08:37.62
それでもvimを使いたいんだ!
だって便利だしかっこいいだろ?(感情論)

ここまで見た
  • 851
  •  
  • 2018/12/21(金) 19:24:43.77
>>848
vim-cheatsheet を使ってみるとか

ここまで見た
  • 852
  •  
  • 2018/12/23(日) 05:10:49.76
マクロやマークは何それ状態だな
レジスタ操作もクリップボードと共有してclipman使ってるしな
なまじ独自のクリップボードを持ってるからvim以外でコピペ出来ないとか初見殺しも大概にせえよ

ここまで見た
  • 853
  •  
  • 2018/12/24(月) 10:23:18.37
確かに初めてコピーしようとしたときは困った

ここまで見た
  • 854
  •  
  • 2019/01/14(月) 23:56:36.81
4kディスプレイにしてwindows10でスケーリングしたら
日本語フォントが重なって表示されるようになってしまった
どこの設定変えたらいいのかわからない

ここまで見た
  • 855
  •  
  • 2019/01/21(月) 13:52:53.56
スケーリングを100に戻して4kを捨てて無意味さをレビューで広める
Windowsのスケーリングを100以上にして使うと色んなソフトでレイアウトが崩れる
UIは100で作ってる人が多いので考慮してないからだろう、Winのスケーリング自体がヘボなのもある

ここまで見た
  • 856
  •  
  • 2019/01/22(火) 01:16:07.56
いろいろやってたらいつの間にかちゃんと表示されるようになった
何が違うのかわからんけど面倒だからもういいや
vimに限らずwindowsのスケーリングほんとくそだわ

ここまで見た
  • 857
  •  
  • 2019/01/22(火) 15:47:25.06
分かったのでツイッターにでも書いてください

ここまで見た
  • 858
  •  
  • 2019/01/24(木) 07:28:56.28
使い始めて3ヶ月くらいの初心者です。
ゆっくりではありますが、テキストオブジェクト?の扱いにもようやく慣れてきて、他のエディタで編集するよりはサクサクと動かせるようにはなってきた状態です。

今の所プラグインは一切手を出していない状態なのですが、「これはほぼ必須」というような定番のプラグインなどはあるのでしょうか。
言語などにもよるとは思うのですが、汎用的で、いろんな言語で扱えるような、便利な定番プラグイン等がありましたら、ぜひ教えていただきたいです。

ここまで見た
  • 859
  •  
  • 2019/01/24(木) 08:43:54.83
>>858
やめとけ
今困っていることがあってそれが何のデメリットもなしに
解決できる夢のようなプラグインがあると知った時にのみ検討すべき
いじればいじるほど汎用性がなくなり動作が怪しくなり煩わしくなっていくのがエディタというもの

ここまで見た
  • 860
  •  
  • 2019/01/24(木) 08:57:03.38
>>858
vim-surround
括弧で囲むオペレータを追加する。これだけはなぜ本体に同等の機能がないのか不思議に思うレベル

ここまで見た
  • 861
  • 858
  • 2019/01/24(木) 09:43:34.64
>>859
なるほどー。確かに今特別に困っていることは無いです。
最初の目標として、プラグイン無しの状態である程度使いこなせるようになったら、何か導入しようと考えていたのですが、
考え方としては間違っていなかったようで安心しました。ありがとうございます。
vimについて調べていると、入門向けの記事と銘打っていても、プラグインを入れているという記事が結構出てくるので、
最初から使ってしまうとvim本体の機能なのか、プラグインの機能なのか分からなくなるのではないかと、疑問に思っていました。

>>860
調べてみた感じだと、確かにこれはデフォルトであってもよさそうな便利な機能ですね。
言語等選ばず使えるプラグインだと思いますので導入させていただきます。

ひとまず>>860さんのプラグインのみ導入して、もう少し基礎的な部分も含めてしっかりと使いこなせるようになりたいと思います。
お二方ともありがとうございました。
また何かありましたら質問させてください。

ここまで見た
  • 862
  •  
  • 2019/01/24(木) 09:57:40.34
>>861
プラグインを管理するプラグインは遅かれ早かれ通る道だから入れてもいいんじゃね
vim8標準の使ってもいいけど
自分はこれ使ってる
https://github.com/junegunn/vim-plug/

ここまで見た
  • 863
  • 858
  • 2019/01/24(木) 10:04:56.28
>>862
丁度surround-vimを手動で導入し終わってしまったところで、
URLのREADMEのgifを見て驚きました。大量に導入する人はこういうプラグインで導入や管理をする感じなんですね。
vim8自体にもこういう管理機能があるというのも初めて知りました。調べてみたいと思います。
勉強になりました。ありがとうございます。

ここまで見た
  • 864
  •  
  • 2019/01/24(木) 20:58:05.75
https://qiita.com/nil2/items/ddcf23f1163d0abd805b
この界隈っていつも数だけは一丁前だよな
プラグイン管理の設定自体が煩雑化する徹底っぷり
neobundle.vim
vimdoc-ja
vim-auto-save
vim-sensible
vsession
さして使わんからこの程度

後ヘルプの引き方も覚えるのが吉
.vimrcにこれを追記すればKを押した位置の文字でキーワード検索できるから
set keywordprg=:help

ここまで見た
  • 865
  •  
  • 2019/01/25(金) 04:58:52.34
正確には
autocmd FileType vim,help setl keywordprg=:help

ここまで見た
  • 866
  •  
  • 2019/01/25(金) 08:33:54.48
自分もいろいろプラグイン入れてきたけど、結局使うことが無くなりほとんど消した。
いま残っているのは tlist と自作のプラグインが数種。

ここまで見た
  • 867
  •  
  • 2019/02/06(水) 20:17:44.80
久しぶりにプラグインを入れようとすると、
自分がどのプラグイン管理を使ってたのか思い出せない

ここまで見た
  • 868
  •  
  • 2019/02/11(月) 11:43:52.71
7.4から8.1にしたらちょっとフォントきれいになった気がする。
こんなことあるのか

ここまで見た
  • 869
  •  
  • 2019/02/11(月) 12:45:21.92
そのうちプラグイン管理プラグインを管理するプラグインが出てくるね

ここまで見た
  • 870
  •  
  • 2019/02/11(月) 12:56:37.09
>>869
既存のプラグイン管理プラグインでもプラグイン管理プラグインを管理できると思うが

ここまで見た
  • 871
  •  
  • 2019/02/11(月) 14:09:38.84
既存のプラグイン管理プラグイン管理プラグインがおかしい時
プラグイン管理プラグイン管理プラグインを自力で修正して
プラグイン管理プラグインでアップデートすると
プラグイン管理プラグイン管理プラグインが元の木阿弥になってしまう
あんまり多段にしないほうがいい

ここまで見た
  • 872
  •  
  • 2019/02/11(月) 16:00:13.25
コールバック関数の括弧みたいにプラグイン管理するのやめてください

ここまで見た
  • 873
  •  
  • 2019/02/11(月) 22:51:21.31
管理プラグイン1つ使って、細かいことしたくなったら自前の薄いラッパー書くのが楽

ここまで見た
  • 874
  •  
  • 2019/02/11(月) 23:43:22.67
>>868
Windows版 gVim ならフォントレンダリング関連の改善入ってたと思うよ
フルカラー絵文字対応とかも
たしか日本の方々によるパッチだったはず

ここまで見た
  • 875
  •  
  • 2019/02/12(火) 04:55:49.84
snap flatpak appimage nix linuxbrew
考えたら汎用パッケージ管理からしてご覧の有り様だった
その内atoolみたいなの出そうだな

ここまで見た
  • 876
  •  
  • 2019/02/16(土) 02:07:12.12
Pluginフォルダにgit cloneしてきたのそのまま放り込めば動くんだから、重くて遅延ロードする必要性が無い人にはおすすめしない

ここまで見た
  • 877
  •  
  • 2019/03/18(月) 04:05:58.23
Align.vim プラグインについて質問です。

2つ以上の異なる文字を同じセパレータとみなして Align することはできますか?

たとえば、

foo [ bar
, baz ]

この2行の文字列に対して、文字 '[' と 文字 ',' を同じセパラレータとみなして Align を施し、
2行目の',' の前に4文字分の空白を挿入して、'[' と ',' の位置を揃えたいです。

ここまで見た
  • 878
  •  
  • 2019/03/18(月) 05:06:46.73
Align.vimは分からんけどvim-aligntaなら
Align -R ,\|[

ここまで見た
  • 879
  •  
  • 2019/03/18(月) 08:10:24.78
>>877
空白区切りで複数指定

:Align [ ,

正規表現として解釈されるので
:Align [[,]
とかでもok

砂時計アラームタイマー
フリック回転寿司
ここまで見た

★お気に入り追加

このページを共有する
facebook twitter hatena line google mixi email