我试图避免使用鼠标,只使用键盘,这样我就可以加快速度。另外,我不擅长使用 VIM。我使用 vim 的唯一动机是一切都可以通过键盘实现,这样我就可以更快地完成任务。
我做了什么?
#vim /etc/ssh/sshd_config
1)将光标移至所需行。接下来,我按下 -shift + v
它说现在VISUAL LINE
2)接下来,我按下向下的箭头键来选择一组线条。
3)Pressed y
它说 -" 22 lines yanked"
我相信这意味着它已经复制了我选择的 22 行。
4) 我进入 gedit 并尝试执行,ctrl + shift + v
但没有成功。接下来,我尝试执行ctrl+ v
该操作,但同样没有成功。通常的做法是什么?
答案1
我认为你需要在 vim 中编译剪贴板才能使它工作。你可以在 Vim 中使用 :echo has('clipboard') 检查你的 Vim 是否有这个功能(如果输出为 0,则不存在;如果输出为 1,则存在)。
这个答案有更多关于该主题的信息
如果你这样做,.vimrc 中的以下内容可以完成这项工作:
" paste from system CTRL-C clipboard
nnoremap <Leader>p "+p
" paste from system highlghted clipboard (linux only)
nnoremap <Leader>P "*p
" copy contents of unnamed register to system CTRL-C clipboard
nnoremap <silent><Leader>y :call Preserve("normal! Gp\"+dGu")<cr>
\ :echo 'copied to CTRL-C clipboard'<cr>
" copy contents of unnamed register to system highlghted clipboard (linux only)
nnoremap <silent><Leader>Y :call Preserve("normal! Gp\"*dGu")<cr>
\ :echo 'copied to highlight clipboard'<cr>
function! Preserve(command)
" Preparation: save last search, and cursor position.
let _s=@/
let l = line(".")
let c = col(".")
" Do the business:
execute a:command
" Clean up: restore previous search history, and cursor position
let @/=_s
call cursor(l, c)
endfunction
因此,提取文本后,您可以按下 <leader>y,然后转到其他应用程序并按 ctrl+v,它就会粘贴。
<leader> 键默认是反斜杠,因此您可以输入 '\+y'。
如果你想将从外部应用程序复制的文本粘贴到 vim 中,你可以按 ctrl+shift+v,或者使用上面的映射 p
如果你想在浏览时避免使用鼠标,维美拉是一个很棒的扩展,可以让您使用类似 vim 的键进行浏览。