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

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

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

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Q&A

2回答

4210閲覧

Vimでインサートモードからノーマルモードに戻る時にカーソルが左に1個ずれる

退会済みユーザー

退会済みユーザー

総合スコア0

Vim

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

0グッド

0クリップ

投稿2018/08/12 09:17

編集2018/08/14 18:45

vimを利用する時に、インサートモードに入って編集した後にノーマルモードへ戻ると思うのですがその時にカーソルが左側に一つずれてしまいます。加えて、ノーマルモードでlキーを押して(或いは→キー)カーソルを移動する時に一番右端まで行かずに次の行へ移行してしまいます。vimrcの設定で何が間違っていると考えられるでしょうか??
何か書き加えるor削除すれば良いでしょうか??

[追記]
なぜインサートした文字の先頭に移動する(abcdefgと打っていて、抜けたらfとgの間にカーソルが移動する)のが正しいのでしょうか??
どういった理由からそうなる設計になっているのでしょうか?

イメージ説明
イメージ説明
イメージ説明
イメージ説明

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

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

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

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

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

guest

回答2

0

カーソルは文字を指し示すものですよ。
文字と文字の間には何も無いので。
カーソルが縦棒だと間にあるように見えますけどね。

投稿2018/08/13 10:06

shozi3

総合スコア691

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

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

退会済みユーザー

退会済みユーザー

2018/08/14 13:10

fとgの間に、まぁ、縦棒があったとしてその時に→を押したら次の行の文字の先頭に縦棒が移動するのですがそれが普通なのでしょうか?? gの後ろに縦棒がいかないとdeleteする時に使いづらいのでは無いかな?と思ったのですが…(もし、また解釈が変だったり間違っていたら教えてください!)
shozi3

2018/08/14 15:29

l (小文字のエル)でもそうなりますか? →キーのバインドがおかしいんじゃないのかな。 実行環境の情報が何も無いのでわかりませんけどね。 →を押す前と押した後のスクショ貼ってみては?
退会済みユーザー

退会済みユーザー

2018/08/14 18:35

実行環境の部分を上げたくはあるのですが、どこを上げて良いのか分からないのと多すぎるという問題があるのですよね、、、 なるほど、スクショは良いですね。
shozi3

2018/08/15 02:13

> インサートモードに入って編集した後にノーマルモードへ戻ると思うのですがその時にカーソルが左側に一つずれてしまいます。 これは otn さんのおっしゃる通り、カーソルは最後の文字を指し示すのが正常な動作です。 挿入モードに入り、何も入力せずにノーマルモードへ戻るとカーソルは左に移動しますが、 この場合を言っているなら「そういう仕様です」としか言えないですね。 > ノーマルモードでlキーを押して(或いは→キー)カーソルを移動する時に一番右端まで行かずに次の行へ移行してしまいます。 オプション whichwrap の設定を確認してください。 vimのデフォルトは'b,s'になっているはずです。 あと「fとgの間に」という表現は、正しくありません。 写真3のカーソルは「g」を指しています。
退会済みユーザー

退会済みユーザー

2018/08/15 04:08

仕様だったのですね!それは知らずにすいませんでした…。 縦棒にしたせいで変に思ってしまっただけで、gを指していたのですね…分かりました…。 whichwrapの設定を確認してきます!
guest

0

インサートモードから抜けた場合、最後にインサートした文字の上にカーソルがあるのが正常です。
また、カーソルを右移動したとき、行の最後の文字までカーソルが行くと次の行に移るのも正常です。
何も間違えていません。

このサイトで知りましたが、行の最後の文字の次までカーソルを移動したいときは、
set virtualedit=onemore
という設定で可能です。

投稿2018/08/12 09:45

otn

総合スコア84499

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

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

退会済みユーザー

退会済みユーザー

2018/08/12 13:19

行の最後の文字の前で止まるのが正常なのですか!? abcdefg とあったらfとgの間でカーソルが止まってlキーを押したらhまで行くのが正解ですか?? hijklmn
退会済みユーザー

退会済みユーザー

2018/08/12 13:23

もしかしてなのですが、改行しているから次の行の文字の前に行くのが正解ということでしょうか?
otn

2018/08/13 12:05

カーソルは、文字を指します。つまり、文字の上です。なので、 > 行の最後の文字の前で止まるのが正常なのですか!? でなく、行の最後の文字の上です。カーソルが文字の上にあるときに、目にどのように見えるかは設定次第でしょう。 > 改行しているから次の行の文字の前に行くのが正解ということでしょうか? これはちょっと意味がわかりません。
退会済みユーザー

退会済みユーザー

2018/08/14 13:08

意味がわかりませんよね、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問