如何使用 vim 使用命令删除所选行的前几个字符?

lay*_*ten 22 vim

如何删除前几个字符,如 remove ; 从使用命令选择的行?我切换到插入模式,但不知道该怎么做。

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_ftp.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_exif.dll      ; Must be after mbstring as it depends on it
;extension=php_mysqli.dll
;extension=php_oci8_12c.dll  ; Use with Oracle Database 12c Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
Run Code Online (Sandbox Code Playgroud)

tec*_*raf 39

  1. 将光标放在第一个或最后一个 ;
  2. Ctrl+v进入可视块模式
  3. 使用方向键选择;要删除的字符(或其他“前几个字符”)
  4. x一次即可全部删除

  • 使用 `j` 或 `k` 比箭头键更好 ;-) (4认同)

Tho*_*key 7

通常你会在前模式下这样做,例如,如果那是整个文件,你可以只做

:%s/^;//
Run Code Online (Sandbox Code Playgroud)

删除所有前导分号。

如果还有其他行不想修改,当然就复杂了。


小智 6

techraf 的回答对我有用。另一种选择是使用 vim 的 :norm-command。

  1. 将光标放在第一行
  2. 按下Shift+V进入视线模式
  3. 按下16j可选择当前行下方的 16 行
  4. 类型 :norm ^x

:进入命令模式,norm指定将在所有行上执行的命令,^转到行首,并x删除第一个字符。