web-dev-qa-db-ja.com

vimでのビジュアルブロック編集

私はこれを参照しました post vimでブロック編集を使用します。しかし、私が鍵をかけるとき I または c ブロック選択後、vimは私がを押したかのように通常の編集モードに入ります i。また、ブロックを選択すると、 x ブロック内の文字を削除するためのキー。

プレス前 I

enter image description here

プレス後 I

enter image description here

入力文字をブロックするにはどうすればよいですか?

+ visualextraは以下のバージョン情報から有効になっています。

> $ vim --version VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan  2
> 2014 19:39:47) Included patches: 1-52 Modified by
> [email protected] Compiled by buildd@ Huge
> version with GTK2-GNOME GUI.  Features included (+) or not (-):
> +acl             +farsi           +mouse_netterm   +syntax
> +arabic          +file_in_path    +mouse_sgr       +tag_binary
> +autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
> +balloon_eval    +float           +mouse_urxvt     -tag_any_white
> +browse          +folding         +mouse_xterm     +tcl
> ++builtin_terms  -footer          +multi_byte      +terminfo
> +byte_offset     +fork()          +multi_lang      +termresponse
> +cindent         +gettext         -mzscheme        +textobjects
> +clientserver    -hangul_input    +netbeans_intg   +title
> +clipboard       +iconv           +path_extra      +toolbar
> +cmdline_compl   +insert_expand   +Perl            +user_commands
> +cmdline_hist    +jumplist        +persistent_undo +vertsplit
> +cmdline_info    +keymap          +postscript      +virtualedit
> +comments        +langmap         +printer         +visual
> +conceal         +libcall         +profile         +visualextra
> +cryptv          +linebreak       +python          +viminfo
> +cscope          +lispindent      -python3         +vreplace
> +cursorbind      +listcmds        +quickfix        +wildignore
> +cursorshape     +localmap        +reltime         +wildmenu
> +dialog_con_gui  +lua             +rightleft       +windows
> +diff            +menu            +Ruby            +writebackup
> +digraphs        +mksession       +scrollbind      +X11
> +dnd             +modify_fname    +signs           -xfontset
> -ebcdic          +mouse           +smartindent     +xim
> +emacs_tags      +mouseshape      -sniff           +xsmp_interact
> +eval            +mouse_dec       +startuptime     +xterm_clipboard
> +ex_extra        +mouse_gpm       +statusline      -xterm_save
> +extra_search    -mouse_jsbterm   -Sun_workshop    +xpm    system vimrc file: "$VIM/vimrc"
>      user vimrc file: "$HOME/.vimrc"  2nd user vimrc file: "~/.vim/vimrc"
>       user exrc file: "$HOME/.exrc"   system gvimrc file: "$VIM/gvimrc"
>     user gvimrc file: "$HOME/.gvimrc" 2nd user gvimrc file: "~/.vim/gvimrc"
>     system menu file: "$VIMRUNTIME/menu.vim"   fall-back for $VIM: "/usr/share/vim" Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H
> -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/harfbuzz   -pthread -DORBIT2=1 -D_REENTRANT -I/usr/include/libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-keyring-1 -I/usr/include/libgnome-2.0 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/x86_64-linux-gnu/gnome-vfs-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libxml2 -I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/cairo -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/libpng12     -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1     -I/usr/include/tcl8.6  -D_REENTRANT=1  -D_THREAD_SAFE=1  -D_LARGEFILE64_SOURCE=1 Linking: gcc   -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic -Wl,-export-dynamic -Wl,-E  -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -o vim   -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype     -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lgnomevfs-2 -lgnomecanvas-2 -lgnome-2 -lpopt -lbonobo-2 -lbonobo-activation -lORBit-2 -lart_lgpl_2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lfreetype -lgconf-2 -lgthread-2.0 -lgmodule-2.0 -lgobject-2.0 -lglib-2.0   -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE  -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl  -L/usr/lib -llua5.2 -Wl,-E  -fstack-protector -L/usr/local/lib  -L/usr/lib/Perl/5.18/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions  -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-1.9.1 -lpthread -lrt -ldl -lcrypt -lm  -L/usr/lib
7
Kris Roofe

ビジュアルブロックモードでIを押すと、vimは挿入モードに入ったように見えます。ただし、挿入モードを終了して再び通常モードに戻ると、挿入モードで押したキーが選択したブロック全体で有効になっていることがわかります。

デモはこちらから入手できます リンク

9
sid-m

ここにsid-mの答えを実装しました。結果をここに示します。この問題が発生するユーザーはほとんどいないためです。

押された後私:

enter image description here

入力されたaaa:(ここでiを押して、通常の挿入と同じステータスで誤解しないでください)

enter image description here

Escを入力しました。

enter image description here

1
Kris Roofe

ビジュアルブロックモード

選択の前にテキストを挿入する

ステップ1、次を使用してビジュアルブロックの選択を作成します。

<C-v>{motion}

ステップ2、Iで挿入モードに入ります。

I

ステップ3、必要なものを挿入します。

foo

ステップ4、挿入モードを終了します。

<Esc>

選択後にテキストを挿入する

ステップ2、Aで挿入モードに入ります。

A

選択内容の変更

ステップ2、カットしてcで挿入モードに入ります。

c

選択内容を同じ文字に置き換えます

ステップ2、rを押します。

r

ステップ3、目的のキーを押します。

-

次回はもう少し頑張ってください。

1
romainl