简体   繁体   中英

VIM : word completion in command-line mode?

When replacing a word with another in a buffer in command-line mode, :%s/verylongword/newword/g , is there a way to word-complete 'verylongword' somewhow from the contents of the buffer ?

Failing that, is there a way of copy-pasting 'verylongword' from the buffer when typing :%s/verylongword/newword/g ?

Command-line window

While typing the command press Ctrl F to open the command-line window, see :h c_CTRL-f .

In the command-line window you can use all the usual vim commands to edit your command line.


Paste from register

To paste from a buffer in command-line mode press Ctrl R followed by the register name.

For example press Ctrl R 0 to paste from register 0 to paste the last yanked text.

See :h c_CTRL-R for more info.


Object under cursor

Ctrl R also allows the following completions (quoted from vim help):

CTRL-R CTRL-F                           c_CTRL-R_CTRL-F c_<C-R>_<C-F>
CTRL-R CTRL-P                           c_CTRL-R_CTRL-P c_<C-R>_<C-P>
CTRL-R CTRL-W                           c_CTRL-R_CTRL-W c_<C-R>_<C-W>
CTRL-R CTRL-A                           c_CTRL-R_CTRL-A c_<C-R>_<C-A>
                Insert the object under the cursor:
                        CTRL-F  the Filename under the cursor
                        CTRL-P  the Filename under the cursor, expanded with
                                'path' as in gf
                        CTRL-W  the Word under the cursor
                        CTRL-A  the WORD under the cursor; see WORD

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM