vim Part 6©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
:!sort と :sort! のことでも言ってるんかな。全然別物だから。
:! は外部コマンドの実行だから、:!sort は sort という外部コマンドを実行する。
:sort! は :sort というVimの組み込みコマンドにオプションの ! を付けたもの。
分からないことがあればとりあえずヘルプ読め。:help :!、:help :sort 暗黒美夢応のなんとかっていうプラグインを使って色んなプラグインを入れてるんだけど、暗黒美夢王のそのプラグインやその他のプラグインのアップデートってどうやるの?
もしかしてひとつづつ、gitからプルするの? dein.vimとそれで入れた他のプラグインの事っす プラグインに手を出し始めると末期
長い目で見れば、アプリは標準機能のみで使うのが最も幸せになれる プラグインしこたま突っ込んでも結局戻すまでがテンプレですし
デスクトップ弄って最終的に元に戻すのと同じで ファイルブラウザのサイドバーとアイコンのプラグイン付けたらめちゃめちゃ重くなった
見た目に愛着湧いたけど重くてマジで苦痛 プラグインいっぱい入れても結局使うのって限られてるよね。
せいぜい3〜4個 まあそうだよな
surround, ctrlp, matchit そんなもんかな 48個入ってるな
ほとんど使ってないのもあるけど
削れて半分、20個以上は必要な感じ ソフトウェアデザインの7月号はVim特集だったみたい
読んだ人いる? あの雑誌の編集は頭おかしい
ネタがなくなるとVim・Emacs特集組みやがる
しかも絶対主義とか言っちゃってて痛々しい >>796
インストール、文字入力、プラグインの入れ方、等の入門編だった
このスレの住人なら、実践Vim 方がためになると思う >>798
どうもありがとう
実践Vim気になってるんだけど、紙のはもう売ってないみたいね
オライリーのメガネ猿のは持ってるから、それ以降のバージョンの事と最新のプラグイン周りの事まとまったのが読みたい
技術書、入門書のスレってどこかにある? ノーマルモードの<S-Space>って移動?選択?それとも環境依存? ぶっちゃけvim関連の書籍って役に立つの?
今はマニュアルの日本語化が進んでるからそれで十分じゃない? これから使い始める人には必要でしょ
Vimのヘルプは充実しているけれど
初心者は適切なヘルプキーワードを知らないからな >>803
>初心者は適切なヘルプキーワードを知らないからな
紙の本でも同じ事が言えるのでは usr_XX.txt は上から下まで読んどく価値がある >>804
ヘルプは量が多すぎるから辞書代わりにキーワードを指定して調べ物するにはいいけど、最初から最後まで通して読むには向いてない
一方で紙の本は何も知らない初心者が要点をかいつまんで最初から通して読める分量になってるでしょ >>807
ヘルプファイルの usr_01.txt から usr_45.txt までのこと どんなに厚い本でも目次や索引があれば検索自体は容易なのでは?
Linuxからしてそうだがこの界隈は説明書読むのに説明書がいるんだから同じ尺度で考えちゃいかんよ
そして利用者はその煩雑な手間を学習に向くだの楽だのしか言わないから面白い そもそも用語とか概念とかを知らないと索引があっても検索のやりようがないから入門書は重要
例えばテキストオブジェクトという概念を知らなければいきなり登場したciwについて調べようがない >>810
例が悪くない?
help.jaxのど頭21行の知識
> 移動: カーソルを使用するか、"h" で左、"j" で下、"k" で上、"l" で右に移動できます。
> 項目へジャンプ: タグ (例: |bars|) にカーソルを合わせ、CTRL-] を押します。
> 元の場所に戻る: CTRL-T or CTRL-O を押す。繰り返すと更に戻れます。
> ノーマルモードコマンド :help x
だけで
:help c
{motion} の上で CTRL-]
motion.txt の上で CTRL-]
と簡単にたどり着けてしまう いくらヘルプを日本語化しようが:helpは日本語で検索できないからね仕方ねいね
・vimのヘルプを日本語化する
・man vimでヘルプの出し方を調べる
・どのヘルプファイルに調査対象の文字があるかをgrepで調べる
・$ vim +:"help"でヘルプを開く
・該当するヘルプファイルのタグでC-[
・/で目当ての文字を検索
man vimだってmanの存在知ってる前提だからな
英語だったら翻訳の手間いるし説明書読むのに説明書がいるってのはこういうことだ >>811
それは c と i と w がそれぞれ意味を持っていることを知ってるから :help c を実行しようと思うんだよね?
>>810の言うようにまだvimに馴染んでない初心者が :help ciw としたところで何も見つからない 同人誌で良いから詳細でとっても分かりやすい説明書出してよ
pdfじゃなくてちゃんと紙の書籍で 90年代のころと違ってもうEmacsよりVimの勝ちだと思ってたんだが、Emacsスレのほうが賑わってるんだな
ネットだとEmacsの書き込みはここ数年前世見なくなったのに。 >>812
日本語検索できるぞ。それと :helpgrep あるぞ
:helpg 表示
を入力して :copen してみ?
もちろん日本語helpは導入済みの前提 >>808
チュートリアル的なのってなかったっけ? EmacsはEmacsで面白いよね。ここ数年使ってないけど結構好き。 >>818
vimtutor だな
入門者はとりあえずやっとくべき >>813
まぁ、ヘルプ読んだり書籍買うよりも
いきなりciwを登場させた本人に聞くのが一番だね ノーマルモードの<S-Space>って移動?選択?それとも環境依存ですか?? 人いねぇ\(^o^)/
.viminfoに重複履歴があったけど重複保存の回避ってできないかな
bashのHISTCONTROLと似たことしたい
.viminfoでsort+uniqしちゃいかんしソートせずに重複を消すコマンドがあればいいんだけど ノーマルモードの<S-Space>って移動?選択?どちらですか? 選択した行について、Shellのsortを呼び出して、結果と今の選択行をそっくり入れ換えるにはどうしますか? >>825
S-Vで複数行選択して:!sort
実際のコマンド行の表示は:'<,'>!sort みたいになる shellのsortを呼び出したい案件なのかもしれませんがvimにsortありますよ
実行は!付けるか付けないかの違いでしかないですが 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だとどうやるのか、ちょっとうまくいきません >>828
同じじゃない?
1) カーソルが一番上にある状態で Shift-v でビジュアルモードに入り、G で最終行まで選択して反転させる
2) : (セミコロン) でコマンド入力 (実際には :’<,’> と表示される) モードになるので続けて !sort <オプション> を実行
実際には以下のようになる
:’<,’>!sort ―field-separator=¥’ -n -r ―key=2,1
それともOS (shell?) コマンドの !sort じゃなくてvim内蔵の sort でやりたいけどできないってこと? !は先頭か末尾かで意味変わるのかよ・・・
連番挿入ってひょっとしてvimで!seqした方が手っ取り早いのか? ぐへへ
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)) これでどうやろ
久しぶりに書いたんで自信ないけど
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 あ bangで反対ソートにするつもりだったけどやり忘れた 100とかくらいまでなら、試してないけど
100i1<cr>ggVGg<c-a>
とかでいけるんじゃないかね 行の最初に挿入か置換するのどうするの?
0で行の最初にカーソル持ってきてPを押すと2文字目にペーストされてしまう >>836
挿入ならI置換なら^
左側にペーストってあったっけ?
挿入してレジスタペーストかな? >>837
>>838
どうもありがとうございます! コマンドラインモードで範囲内の文字列の切り取りとペーストを一度に行いたいです。
例えば
:3,7何とか
とすると、「3行目から7行目までが削除され、かつカーソル位置にペースト」
できれば嬉しいのですが、方法は有るでしょうか?
削除が必要なければ t を使えばいいのですが。
vim のデフォルトの機能でお願いします。 >>841
できました。
ありがとうございました。
>>842
まさに >>841 で実現できることです。
ところで、こういう t や m などの他に
コマンドラインモード内で使えるもので何があるか調べたいのですが、
ググり方あるいはヘルプの出し方が分かりません。
ググっても、便利な機能やテクニックとして一部は載っていますが、
一覧表は無いのでしょうか? >>843
:h :index
exコマンド数600個近くあるけどな! vimはシェルみたいに入力補完できるから:hの後にTab連打すれば一応コマンド一覧は出せる
:h hならh開始、、:h wqならwq関連、:h CTならCtrl関連と頭出しもできる
同じ操作系列の抽出?知らない子ですね・・・ >>844 >>845
ありがとうございます。
尋常じゃない多さですね。 vimのコマンドは大量だけどちょっと覚えればいいのがいい
込み入った作業だと結局ググらにゃならんが 検索とか置換とか基本機能のショートカットくらい表示しても罰は当たらないのでは?
nanoは色々残念だし エディタにあまり多くを求めない生き方もありだよ
本当はnanoで十分な人多いんじゃないの それでもvimを使いたいんだ!
だって便利だしかっこいいだろ?(感情論) >>848
vim-cheatsheet を使ってみるとか マクロやマークは何それ状態だな
レジスタ操作もクリップボードと共有してclipman使ってるしな
なまじ独自のクリップボードを持ってるからvim以外でコピペ出来ないとか初見殺しも大概にせえよ 4kディスプレイにしてwindows10でスケーリングしたら
日本語フォントが重なって表示されるようになってしまった
どこの設定変えたらいいのかわからない スケーリングを100に戻して4kを捨てて無意味さをレビューで広める
Windowsのスケーリングを100以上にして使うと色んなソフトでレイアウトが崩れる
UIは100で作ってる人が多いので考慮してないからだろう、Winのスケーリング自体がヘボなのもある いろいろやってたらいつの間にかちゃんと表示されるようになった
何が違うのかわからんけど面倒だからもういいや
vimに限らずwindowsのスケーリングほんとくそだわ 使い始めて3ヶ月くらいの初心者です。
ゆっくりではありますが、テキストオブジェクト?の扱いにもようやく慣れてきて、他のエディタで編集するよりはサクサクと動かせるようにはなってきた状態です。
今の所プラグインは一切手を出していない状態なのですが、「これはほぼ必須」というような定番のプラグインなどはあるのでしょうか。
言語などにもよるとは思うのですが、汎用的で、いろんな言語で扱えるような、便利な定番プラグイン等がありましたら、ぜひ教えていただきたいです。 >>858
やめとけ
今困っていることがあってそれが何のデメリットもなしに
解決できる夢のようなプラグインがあると知った時にのみ検討すべき
いじればいじるほど汎用性がなくなり動作が怪しくなり煩わしくなっていくのがエディタというもの >>858
vim-surround
括弧で囲むオペレータを追加する。これだけはなぜ本体に同等の機能がないのか不思議に思うレベル >>859
なるほどー。確かに今特別に困っていることは無いです。
最初の目標として、プラグイン無しの状態である程度使いこなせるようになったら、何か導入しようと考えていたのですが、
考え方としては間違っていなかったようで安心しました。ありがとうございます。
vimについて調べていると、入門向けの記事と銘打っていても、プラグインを入れているという記事が結構出てくるので、
最初から使ってしまうとvim本体の機能なのか、プラグインの機能なのか分からなくなるのではないかと、疑問に思っていました。
>>860
調べてみた感じだと、確かにこれはデフォルトであってもよさそうな便利な機能ですね。
言語等選ばず使えるプラグインだと思いますので導入させていただきます。
ひとまず>>860さんのプラグインのみ導入して、もう少し基礎的な部分も含めてしっかりと使いこなせるようになりたいと思います。
お二方ともありがとうございました。
また何かありましたら質問させてください。 >>861
プラグインを管理するプラグインは遅かれ早かれ通る道だから入れてもいいんじゃね
vim8標準の使ってもいいけど
自分はこれ使ってる
https://github.com/junegunn/vim-plug/ >>862
丁度surround-vimを手動で導入し終わってしまったところで、
URLのREADMEのgifを見て驚きました。大量に導入する人はこういうプラグインで導入や管理をする感じなんですね。
vim8自体にもこういう管理機能があるというのも初めて知りました。調べてみたいと思います。
勉強になりました。ありがとうございます。 https://qiita.com/nil2/items/ddcf23f1163d0abd805b
この界隈っていつも数だけは一丁前だよな
プラグイン管理の設定自体が煩雑化する徹底っぷり
neobundle.vim
vimdoc-ja
vim-auto-save
vim-sensible
vsession
さして使わんからこの程度
後ヘルプの引き方も覚えるのが吉
.vimrcにこれを追記すればKを押した位置の文字でキーワード検索できるから
set keywordprg=:help 正確には
autocmd FileType vim,help setl keywordprg=:help 自分もいろいろプラグイン入れてきたけど、結局使うことが無くなりほとんど消した。
いま残っているのは tlist と自作のプラグインが数種。 久しぶりにプラグインを入れようとすると、
自分がどのプラグイン管理を使ってたのか思い出せない 7.4から8.1にしたらちょっとフォントきれいになった気がする。
こんなことあるのか そのうちプラグイン管理プラグインを管理するプラグインが出てくるね >>869
既存のプラグイン管理プラグインでもプラグイン管理プラグインを管理できると思うが 既存のプラグイン管理プラグイン管理プラグインがおかしい時
プラグイン管理プラグイン管理プラグインを自力で修正して
プラグイン管理プラグインでアップデートすると
プラグイン管理プラグイン管理プラグインが元の木阿弥になってしまう
あんまり多段にしないほうがいい コールバック関数の括弧みたいにプラグイン管理するのやめてください 管理プラグイン1つ使って、細かいことしたくなったら自前の薄いラッパー書くのが楽 >>868
Windows版 gVim ならフォントレンダリング関連の改善入ってたと思うよ
フルカラー絵文字対応とかも
たしか日本の方々によるパッチだったはず snap flatpak appimage nix linuxbrew
考えたら汎用パッケージ管理からしてご覧の有り様だった
その内atoolみたいなの出そうだな Pluginフォルダにgit cloneしてきたのそのまま放り込めば動くんだから、重くて遅延ロードする必要性が無い人にはおすすめしない Align.vim プラグインについて質問です。
2つ以上の異なる文字を同じセパレータとみなして Align することはできますか?
たとえば、
foo [ bar
, baz ]
この2行の文字列に対して、文字 '[' と 文字 ',' を同じセパラレータとみなして Align を施し、
2行目の',' の前に4文字分の空白を挿入して、'[' と ',' の位置を揃えたいです。 Align.vimは分からんけどvim-aligntaなら
Align -R ,\|[ >>877
空白区切りで複数指定
:Align [ ,
正規表現として解釈されるので
:Align [[,]
とかでもok >>878
同カテゴリのプラグイン候補として検討してみます。
>>879
できました。
エスケープしなくても良いのですね。
ありがとうございました。 矩形選択でGで一番下かggで一番上の行まで選択するとき一番左にカーソル飛んでしまうですが何かいい方法ないですかね MSYSでは
finddir('Windows', '/c/Users;') " -> '/c/Windows'
finddir('Windows/..', '/c/Users;') " -> '/c'
win32では
finddir('Windows', 'C:\Users;') " -> 'C:\Windows'
finddir('Windows\..', 'C:\Users;') " -> 'C:\Users' なんで、'C:\'になるはずじゃないの?
win32のvimがおかしいのか自分の解釈が間違ってるのか
きっかけはvim-lspのroot_uriの設定でよくある'.git/..'を探すというもの 質問失礼します
置換ABCD....を一括でやるのって↓しかないですか?
[vim] vimで複数の置換コマンドを一括で行う - 綾小路龍之介の素人思考 http://za.toypark.in/html/2010/02-22.html
.shみたいに書いといて使いたいときに呼び出して実行って出来ないですか?
他のエディタ(Mery)使ってた頃の置換整形マクロ.jsを移植したいんだけどvimの作法が分からないのでどこにどうしたらいいのやら…… vimrcあたりに関数定義しといて呼び出せばいいのでは? ■ このスレッドは過去ログ倉庫に格納されています