[過去ログ] Vim Part30 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
963: 2022/10/05(水)21:07 AAS
全選択
ggVG
最初メニューでこの文字列を見たとき、なんのこっちゃと感じた。そしてこのgvimを消したくて必死になったが、解決策がなかった。
久しぶりにgvim起動させて、やっとggVGの意味に合点がいった。(^o^;)
■きょうのしつもん
ウインのエディタで
外部リンク[html]:forest.watch.impress.co.jp
「Mery」
あります。
「Mery」の以下の機能と同じことがvimでできませんか?
変換機能で折り返し位置に改行を挿入
折り返し文字数の設定と組み合わせて使いたい機能が、[選択範囲の変換]メニューの中にある[改行を挿入]コマンドです。この機能を実行すると、選択した文章の折り返し位置に改行が挿入されます。
メールのように、一定の文字数ごとに改行を入れる文章を書くときは、この機能が重宝します。最初はなにも考えず文章を入力し、最後にこの機能で折り返し位置に改行を挿入。あとは、そのままコピーしてメール入力画面に貼り付ければ、体裁が整った文章ができあがります
[選択範囲の変換]→[改行を挿入]
964: 2022/10/05(水)21:26 AAS
%!nkf -f...
965: 2022/10/05(水)21:27 AAS
外部リンク:www.soum.co.jp
第12回 Vim と日本語
2016.07.06
<このページをみんなでいっしょに読もう!
<僕が要約していくから、僕を信じてね😃
「<」このマークが僕の文だよ。何もないのは参考ページ。
Vim の一番の弱点とされる日本語の扱い。日本語を Vim 上でいかに扱うかは Vimmer の長年のテーマでした。今回は Vim で日本語を扱うときのテクニックについて紹介します
1 なぜ Vim は日本語入力が苦手なのか¶
日本語入力を Vim で行う場合はノーマルモード→インサートモード→日本語入力モードという二段階の手順を踏まなければならず、日本語入力からノーマルモードに戻るときは日本語入力モード→インサートモード→ノーマルモードという手順を踏まなくてはいけません
< ややまどろっこしい表現だけどVimmerのみんなはわかるよね😍
< この問題については簡単に解決できるので あとは略す
966(1): 2022/10/05(水)21:36 AAS
2 GUI の Vim と日本語入力
GUI の Vim (GVim) の場合、デフォルトで日本語入力との協調動作が有効になっています。普通は特に設定しなくても、日本語入力中に <ESC> を押せば日本語入力はオフになると思います。
< へ〜、そうなんだ? いま確認したら、たしかにできる。
これは古い IM は協調動作のためのインタフェースを備えていなかったので、Vim 側で無理矢理制御しているためです。Fcitx などの比較的問題を起こしにくい IM を用いることをオススメします。
< Fcitxだよ
967: 2022/10/05(水)21:40 AAS
いつまで続くのかねぇ F9の日記は
968(1): 2022/10/05(水)21:45 AAS
3 CUI の Vim と日本語入力¶
GVim では Vim 本体が IM を制御していましたが、CUI の Vim では IM を制御することができません。そのため、<ESC> を押した際に日本語入力をオフにするためには、IM 側が Vim と協調する必要があります。Vim と協調動作できる IM は少なく、大抵の場合は <ESC> を押してから手動で日本語入力をオフにする必要があるのは難点です。その代わり、Vim の日本語協調動作で問題が発生しないとも言えます。Vim と協調できる IM としては、uim と Fcitx が有名です。
uim は vi 協調モードを備えた IM として有名です。uim の設定項目には「vi 協調モードをオンにする」というそのものズバリな設定があります。この設定を有効にすると、<ESC> を押したときに uim がオフになります。
< uimに興味出てきた(o^∀^o) あと前から気になってたけどfcitx5 ってなんだ? いまのままで
なんも困ってないからしらべてないけど!
969(3): 2022/10/05(水)21:47 AAS
俺はかの有名なエフナイン様だ!www
970: 2022/10/05(水)21:49 AAS
>>966
> %!nkf -f...
これは何?
971: 2022/10/05(水)21:50 AAS
中の人、こいつです
>>968-969
972: 2022/10/05(水)21:53 AAS
> Fcitx 5の特徴はWaylandセッションで使用することを主眼に置いて開発されていること
Waylandセッション ってなに?
973: 2022/10/05(水)22:00 AAS
5 日本語の整形
ビジュアルモードで文字列を選択して gq を押すと整形することができます。折り返しの基準となる文字列幅は’textwidth’オプションにより指定することができます。整形前には :setlocal textwidth=80 と実行しておくとよいでしょう。日本語を整形するときには、.vimrc 内で次の設定をしておくとよいです。
set formatoptions+=mM
これだ!良かったー、この情報だ。知りたかったの😍 さっきの
全選択
ggVG
と組み合わせてやってみる
974: 2022/10/05(水)22:02 AAS
>969
このページ読み終わったらやめるから待っとけバカw
975: 2022/10/05(水)22:10 AAS
>‘formatoptions’ オプションに m が指定されていると、行整形時マルチバイト文字でも改行します。
こっちはなんとなく意味わかるが
>‘formatoptions’ オプションに M が指定されていると、行を連結したときにマルチバイト文字なら空白を入れないようになります。
こっちは分かりにくい
$ vi ~/.vimrc
" クリップボード連携
set clipboard=unnamedplus
" マウス有効
set mouse=a
" :hで英語でtopicを引くときにはお尻にtopic@en
set helplang=ja,en
" フォント
set guifont=Fira\ Code\ Light\ 20
set guifontwide=msmincho\ 20
" 日本語を整形
set formatoptions+=mM
set textwidth=80
これでいいのか?
976: 2022/10/05(水)22:15 AAS
おおおおおおおおおっっ できたー...みたい
VGしてgq
なんか...vim って、バーチャファイターみたい(o^∀^o) ゲームっぽいナw よくやったわ、むかし
アーケードで。ケンカなりそうになるんだよな、アレ?
977: 2022/10/05(水)22:40 AAS
*'textwidth'* *'tw'*
'textwidth' 'tw' 数値 (既定では 0)
バッファについてローカル
入力されているテキストの最大幅。行がそれより長くなると、この幅を超えな
いように空白の後で改行される。値を 0 に設定すると無効になる。
'textwidth' は、'paste' オプションがオンになった時には0が設定され、
'paste' オプションがリセットされた際には復元される。
<==*'textwidth'* *'tw'*
短縮表現あるから ~/.vimrc 書き直してくる、いやコマンド入力時でいいか
:set tw=任意
<== 習得しましたっ ビジュアル行の意味がわかんなかったけど、いま理解した
大谷きゅうけい。
978: 2022/10/05(水)22:44 AAS
Vim 標準の整形機能でも、ある程度は整形することができますが、標準では禁則処理を行うことができません。つまり、「、」や「。」が行頭に来てしまう可能性があります。
autofmt.vim を導入すると、禁則処理の問題を解決することができます。外部リンク[php]:www.vim.org
autofmt.vim を用いた整形では、禁則処理以外にも最初の行のインデントを基準に整形を行うことができ、より自然な整形が実現できます。
================
とありますが、標準デフォルトからできるだけ逸脱したくない主義なので、困ってから考える
これだけ。
ではきゅうけい。vim先輩方!指導コメントをお願いします
979: 2022/10/06(木)00:01 AAS
>>969=>>972-978
980: 2022/10/06(木)01:08 AAS
Vim 標準の整形機能でも、ある程度は整形することができますが、標準では禁則処理を行うことができません。つまり、「、」や「。」が行頭に来てしまう可能性があります。
autofmt.vim を導入すると、禁則処理の問題を解決することができます。外部リンク[php]:www.vim.org
autofmt.vim を用いた整形では、禁則処理以外にも最初の行のインデントを基準に整形を行うことができ、より自然な整形が実現できます。
================
とありますが、標準デフォルトからできるだけ逸脱したくない主義なので、困ってから考える
これだけ。
981: 2022/10/06(木)08:34 AAS
放置してるのに、うるさい。
こっちにしてください。
俺の日記帳 第三冊目 [転載禁止]©2ch.net
2chスレ:linux
982: 2022/10/06(木)08:50 AAS
NGしたいのでコテハン付けて下さい
983: 2022/10/06(木)12:24 AAS
外部リンク[git]:github.com
README.md
JpFormat.vimはVimで日本語の禁則処理に対応したフォーマット整形プラグインです。
単純にformatexprへ登録して日本語対応のgqコマンドとして使うことも可能ですが、本プラグインは入力を行いながら編集中の日本語文書を自動整形して原稿の整形結果を常に確認しながら編集を行うことを主な目的にしています。
Vim単体でもwrapmarginやtextwidthなどを使用して整形が行えますが、日本語の禁則処理は考慮されていませんしgqコマンドは空行のみを段落の区切りとみなして連結して改行を埋め込んでしまうので本来の構造が失われます。
JpFormat.vimでは空白行ではなく改行を段落として扱うので改行に意味のある文書でもきちんと整形できます。
JpFormat.vimの大きな特徴は疑似ソフトラップが行える事です。
擬似ソフトラップで折り返しを行う際には改行を埋め込みますが、表示上の改行をマーカーで管理するので原稿形式を何回変更しても元の構造は保持され、何度整形しても元の非整形状態に戻せるために安心して書きかけの原稿に整形を掛ける事が出来ます。
このため未完成原稿でも整形結果を確認しながら、挿入モードで入力する度に自動整形するような使い方もストレス無く実行出来ます。
未完成原稿ではマーカーを使用して整形し、最終原稿では全文連結コマンドかマーカー削除を実行するというのが主な使い方になります。< ココだけ意味が分かりにくい
<==おはよう御座います、このプラグインをインストールしてみます
984: 2022/10/06(木)12:41 AAS
$ sudo timeshift --delete-all
タグ付きスナップショット '2022-10-06_12-28-37': ondemand
$ git clone 外部リンク[git]:github.com ~/.vim/plugin
fatal: destination path '/home/i/.vim/plugin' already exists and is not an empty directory.
fatal: 宛先パス '/home/i/.vim/plugin' はすでに存在し、空のディレクトリではありません。
>>952
> plugin/ ディレクトリ以下にファイルを置く代わりに、それらのファイルを plugin/
> ディレクトリ以下のサブディレクトリに置くこともできます。例えば、Perl 用のプラ
> グインを "~/.vim/plugin/perl/*.vim" に置いたりできます。
$ mkdir ~/.vim/plugin/JpFormat
$ git clone 外部リンク[git]:github.com ~/.vim/plugin/JpFormat
Cloning into '/home/i/.vim/plugin/JpFormat'...
remote: Enumerating objects: 341, done.
remote: Total 341 (delta 0), reused 0 (delta 0), pack-reused 341
Receiving objects: 100% (341/341), 123.98 KiB | 991.00 KiB/s, done.
Resolving deltas: 100% (149/149), done.
985: 2022/10/06(木)12:51 AAS
==>作者さんによる解説ページ。よく理解できないので(使用してるうちに理解できるようになると思われる)解説文中理解できるところだけ。
外部リンク:sites.google.com
日本語対応gqコマンドとして使用する設定
JpFormat.vimには日本語の禁則処理に対応した整形プラグインjpfmt.vimが同梱されています。
jpfmt.vimを日本語対応のgqコマンドとして使用する場合はformatexprを設定してください。
" gqコマンドとして使用する
set formatexpr=jpfmt#formatexpr()
jpfmt#formatexpr()の動作は JpFormat.vimの設定に依存し、「ぶら下げ」処理も行いますが、
gqコマンドとしてはjpvimのほうが違和感がないかもしれません。
日本語対応gqコマンドとしてしか使用しない場合はこれだけで動作します。
====================
==>さくや設定した
Vim単体でもwrapmarginやtextwidthなどを使用して整形が行えますが、日本語の禁則処理は考慮されていませんしgqコマンドは空行のみを段落の区切りとみなして連結して改行を埋め込んでしまうので本来の構造が失われます。
" 日本語を整形
set formatoptions+=mM
set textwidth=80
は事前に削除すべきだと思う。
986: 2022/10/06(木)12:52 AAS
$ vi ~/.vimrc
/home/i/.vim/plugin/JpFormat/autoload/jpdef.vim の処理中にエラーが検出されました:
行 29:
E117: 未知の関数です: jpfmt#import
行 30:
E121: 未定義の変数です: s:org
E116: 関数の無効な引数です: extend
続けるにはENTERを押すかコマンドを入力してください
==> エラー。ググってすぐ解決できない場合は、もう一つのプラグインに変える。
987: 2022/10/06(木)13:09 AAS
> GitHubからダウンロードしてきた場合は JpFormat.vim-masterというディレクトリが作成されているはずなので、.vimrcで次のようにランタイムパスを通します。
~/.vim/plugin/JpFormat
を
JpFormat.vim-master
とリネーム
$ set runtimepath+='/home/i/.vim/plugin/JpFormat.vim-master'
こんどはどうか?
$ vi ~/.vimrc
/home/i/.vim/plugin/JpFormat.vim-master/autoload/jpdef.vim の処理中にエラーが検出されました:
行 29:
E117: 未知の関数です: jpfmt#import
スナップショット: 2022-10-06_12-28-37 ~ JpFormat
==>もどります
988(1): 2022/10/06(木)13:44 AAS
>>988
> ==> エラー。ググってすぐ解決できない場合は、もう一つのプラグインに変える。
外部リンク:github.com
こちらに変更
$ mkdir -p ~/.vim/plugin/autofmt
$ git clone 外部リンク[git]:github.com ~/.vim/plugin/autofmt
$ vi
/home/i/.vim/plugin/autofmt/autoload/autofmt/japanese.vim の処理中にエラーが検出されました:
行 33:
E117: 未知の関数です: autofmt#uax14#import
/home/i/.vim/plugin/autofmt/autoload/autofmt/uax14.vim の処理中にエラーが検出されました:
行 30:
"LineBreak.txt" 0L, 0B
/home/i/.vim/plugin/autofmt/tools/unicode.vim[113]..function <SNR>9_main の処理中にエラーが検出されました:
行 15:
E684: リストのインデックスが範囲外です: 1
続けるにはENTERを押すかコマンドを入力してください
==> こちらも似たようなエラー吐きまくってダメ
$ git clone 外部リンク[git]:github.com ~/.vim/plugin/autofmt
する前に
Usage:
:set runtimepath+=/path/to/autofmt/
:set formatexpr=autofmt#compat#formatexpr()
しておこうか?
989: 2022/10/06(木)14:07 AAS
スナップショット: 2022-10-06_13-21-26 ~
もどった
寝不足のため、今回のトライはここまで。
> Vim単体でもwrapmarginやtextwidthなどを使用して整形が行えますが、日本語の禁則処理は考慮されていませんしgqコマンドは空行のみを段落の区切りとみなして連結して改行を埋め込んでしまうので本来の構造が失われます。
この状態へ戻ります。これでもぜんぜん困ってなかった。「、」や「。」が行頭に来ても、再整形
すればいいだけ。
お騒がせしました🙇💦
990: 2022/10/06(木)21:55 AAS
こんばんわ
$ sudo dpkg-reconfigure locales
en_US.UTF-8
にした。なぜ英語かというと英語OSをずーっと使ったことがある人ならわかるが、思いがけない利益がたくさんあるのである。。。ただし、viは日本語で使いたい。
:h
Vim の起動引数 - :help -r
*-g*
-g VimをGUIモードで起動する。|gui|を参照。逆は|-v|を参照。
*-f*
-f GUI: Vimを起動したプログラム(プロセス)から独立しない。
'f' は "foreground" を意味する。省略すると、GUI版のVimは新しい
プロセスへforkして、現在のプロセスは終了してしまう。gvimの編集
セッションが終わるのを待つプログラム(メールソフトやニュースリー
ダーなど)には、"-f" を使うべきだろう。
ちがうなー。ココ関係ない
991: 2022/10/06(木)21:55 AAS
:h locale | only
ロケールを使用する
>シェルのロケールを設定するには、環境変数$LANGを設定する。例えば、韓国語を使用
するとき、ロケール|locale|の名前が "ko" なら、このように設定する:
sh: export LANG=ko
csh: setenv LANG ko
これを~/.profileや~/.cshrcに書いておけばいつでも設定された状態にできる。
> Vimが使用するロケールだけ設定するには|:language|コマンドを使う:
:language ko
これを~/.vimrcに書いておけばいつでも設定された状態にできる。
<== ココですね!シェルではなく、こんかいはまず> Vimが使用するロケールだけ 設定したい。
992: 2022/10/06(木)21:55 AAS
:language ja
これを打ち込めばviの起動時に日本語なるのか?
:lan
Current language: "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=ja_JP.UTF-8;LC_COLLATE=en_US.UTF-8;LC
_MONETARY=ja_JP.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=ja_JP.UTF-8;LC_NAME=ja_JP.UTF-8;LC_ADDRESS=
ja_JP.UTF-8;LC_TELEPHONE=ja_JP.UTF-8;LC_MEASUREMENT=ja_JP.UTF-8;LC_IDENTIFICATION=ja_JP.UTF-8"
:lan ja_JP.UTF-8 <==すごい(^^) vimの言語が日本語になった
あとは~/.vimrcに書いておけば
上下前次1-新書関写板覧索設栞歴
あと 10 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.017s