質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

解決済

2回答

6945閲覧

Vimの行末に移動したい

mightyMask

総合スコア143

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

0グッド

1クリップ

投稿2018/05/24 16:17

ノーマルモードの時、行末までカーソルを移動しようとしても一つ手前で止まってしまうのですが、解決方法はありますか?
要するにノーマルモードの時改行にカーソルを合わせたいのですが。

行末に移動($)してからインサートモードに入っても、その一つ手前にカーソルが合った状態でインサートモードが始まります。
行末に何か加えようと思った時は(A)でも出来るから問題ないとも言えるのですが、何か気に入らないのですが。
なんでこんな仕様なんでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

元々viは、文字指向じゃなくて行指向のエディタだからです。歴史的理由ですね。
「ファイルは文字の集まり」ではなく「ファイルは行の集まり。行は文字の集まり」という二段構造です。これは慣れるしかないかと。
なので、

改行にカーソルを合わせたいのですが。

「改行」なるものは無いです。あるのは「行頭」「行末」。

vimのデフォルトだと、ノーマルモードでスペース(やl)を繰り返し押せば行末を越えて次の行に行きますが、viだと行末を越えて移動しません(行末にいるときにスペースを押しても無視される)。

投稿2018/05/24 16:37

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mightyMask

2018/05/25 10:05

んーなるほどー。 ではその行の最初や最後の文字自体を行頭や行末と呼んでいるといった感じですかね。 改行の部分には改行コードを可視化して「↵」が表示されるようにしてるのですが、これは文字ではないという解釈なのですかね。 空行だと「↵」にカーソルが当たるのですが、空行に関しては例外って感じなのでしょうか? 慣れるしかないと仰いますが、vimrcで色々できたりプラグインもたくさんあるのに解決策がない事なんて事はないと思うのですがやっぱりダメなんでしょうかね。 ちなみに私は行末を飛び越え云々の設定は私は特にいじってなかったと思いますが、「l」や「→」だと行末を飛び越えずに止まり警告音が鳴り、スペースだと行末を飛び越え次の行に行きました。
otn

2018/05/25 11:09

> 「l」や「→」だと行末を飛び越えずに止まり警告音が鳴り あ、そうでしたか。私は設定で、全部行末で止まるようにしているので、デフォルトは次の行かと思っていました。 歴史的には、ed という行指向のエディタがあって、その拡張版のexが作られて、exのVisualオプションがviです。さらにviの機能拡張版のvimが出来た。 vimで、:%s/a/b/ というようなコマンドをお使いかと思いますが、:の後に打つのがexコマンドです。 vi/vimのノーマルモードから、大文字の Q でexモードに移ります。 exモードだと、文字単位のカーソルすら存在しません。 exベースを捨てて、ゼロから作り直さないとお望みの状態にはならないと思います。
mightyMask

2018/05/29 09:43

うーん...。でしたら行末の直前に必ずスペースを1つ入れるような設定とかならどうでしょうかね。
guest

0

ベストアンサー

下記の設定で行末の一つ先にカーソルを置くことができるようになります。

vim

1set virtualedit=onemore

(参考 :help 'virtualedit')

個人的には、マクロや Vim script による自動実行の際には便利ですが、手で操作するうえではほとんどメリットはないように思います。

ちなみに行末を超えたときにカーソルを次の行に送る設定は :help 'whichwrap' で調べられます。

投稿2018/05/31 13:07

machakann

総合スコア112

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問