如何从vim编辑器复制几行文本将其粘贴到其他编辑器的某个地方?

时间:2015-10-26 17:38:40

标签: vim terminal vim-plugin gnome-terminal

我已经开始使用过去2周的vim编辑器了,我面临的一个问题是我无法将一些代码复制到其他编辑器或其他地方,但我可以复制到vim编辑器。

下面是我的.vimrc文件: -

" Automatic reloading of .vimrc
  autocmd! bufwritepost .vimrc source %


" Better copy & paste
" When you want to paste large blocks of code into vim, press F2 before you
" paste. At the bottom you should see ``-- INSERT (paste) --``.

  set pastetoggle=<F2>
  set clipboard=unnamed


" Mouse and backspace
  set mouse=a  " on OSX press ALT and click
  set bs=2     " make backspace behave like normal again


" Rebind <Leader> key
" I like to have it here becuase it is easier to reach than the default and
" it is next to ``m`` and ``n`` which I use for navigating between tabs.
  let mapleader = ","


" Bind nohl
" Removes highlight of your last search
" ``<C>`` stands for ``CTRL`` and therefore ``<C-n>`` stands for ``CTRL+n``
  noremap <C-n> :nohl<CR>
  vnoremap <C-n> :nohl<CR>
  inoremap <C-n> :nohl<CR>


" Quicksave command
  noremap <C-Z> :update<CR>
  vnoremap <C-Z> <C-C>:update<CR>
  inoremap <C-Z> <C-O>:update<CR>


" Quick quit command
  noremap <Leader>e :quit<CR>  " Quit current window
  noremap <Leader>E :qa!<CR>   " Quit all windows


" bind Ctrl+<movement> keys to move around the windows, instead of using Ctrl+w + <movement>
" Every unnecessary keystroke that can be saved is good for your health :)
  map <c-j> <c-w>j
  map <c-k> <c-w>k
  map <c-l> <c-w>l
  map <c-h> <c-w>h


" easier moving between tabs
  map <Leader>n <esc>:tabprevious<CR>
  map <Leader>m <esc>:tabnext<CR>


" map sort function to a key
  vnoremap <Leader>s :sort<CR>


" easier moving of code blocks
" Try to go into visual mode (v), thenselect several lines of code here and
" then press ``>`` several times.
  vnoremap < <gv  " better indentation
  vnoremap > >gv  " better indentation


" Show whitespace
" MUST be inserted BEFORE the colorscheme command
  autocmd ColorScheme * highlight ExtraWhitespace ctermbg=red guibg=red
  au InsertLeave * match ExtraWhitespace /\s\+$/


" Color scheme
" mkdir -p ~/.vim/colors && cd ~/.vim/colors
" wget -O wombat256mod.vim http://www.vim.org/scripts/download_script.php?src_id=13400
  set t_Co=256
  color wombat256mod


" Enable syntax highlighting
" You need to reload this file for the change to apply
  filetype off
  filetype plugin indent on
  syntax on


" Showing line numbers and length
  set number  " show line numbers
  set tw=79   " width of document (used by gd)
  set nowrap  " don't automatically wrap on load
  set fo-=t   " don't automatically wrap text when typing
  set colorcolumn=80
  highlight ColorColumn ctermbg=233


" easier formatting of paragraphs
  vmap Q gq
  nmap Q gqap


" Useful settings
  set history=700
  set undolevels=700


" Real programmers don't use TABs but spaces
  set tabstop=4
  set softtabstop=4
  set shiftwidth=4
  set shiftround
  set expandtab


" Make search case insensitive
  set hlsearch
  set incsearch
  set ignorecase
  set smartcase


" Disable stupid backup and swap files - they trigger too many events
" for file system watchers
  set nobackup
  set nowritebackup
  set noswapfile


" Setup Pathogen to manage your plugins
" mkdir -p ~/.vim/autoload ~/.vim/bundle
" curl -so ~/.vim/autoload/pathogen.vim https://raw.githubusercontent.com/tpope/vim-pathogen/master/autoload/pathogen.vim
" Now you can install any plugin into a .vim/bundle/plugin-name/ folder
  call pathogen#infect()


" ============================================================================
" Python IDE Setup
" ============================================================================


" Settings for vim-powerline
" cd ~/.vim/bundle
" git clone git://github.com/Lokaltog/vim-powerline.git
  set laststatus=2


" Settings for ctrlp
" cd ~/.vim/bundle
" git clone https://github.com/kien/ctrlp.vim.git
  let g:ctrlp_max_height = 30
  set wildignore+=*.pyc
  set wildignore+=*_build/*
  set wildignore+=*/coverage/*


" Settings for python-mode
" Note: I'm no longer using this. Leave this commented out
" and uncomment the part about jedi-vim instead
" cd ~/.vim/bundle
" git clone https://github.com/klen/python-mode
"" map <Leader>g :call RopeGotoDefinition()<CR>
""let ropevim_enable_shortcuts = 1
""let g:pymode_rope_goto_def_newwin = "vnew"
""let g:pymode_rope_extended_complete = 1
""let g:pymode_breakpoint = 0
""let g:pymode_syntax = 1
""let g:pymode_syntax_builtin_objs = 0
""let g:pymode_syntax_builtin_funcs = 0
""map <Leader>b Oimport ipdb; ipdb.set_trace() # BREAKPOINT<C-c>

" Settings for jedi-vim
" cd ~/.vim/bundle
""git clone git://github.com/davidhalter/jedi-vim.git
 let g:jedi#usages_command = "<leader>z"
 let g:jedi#popup_on_dot = 0
 let g:jedi#popup_select_first = 0
 map <Leader>b Oimport ipdb; ipdb.set_trace() # BREAKPOINT<C-c>

" Better navigating through omnicomplete option list
" See http://stackoverflow.com/questions/2170023/how-to-map-keys-for-popup-menu-in-vim
  set completeopt=longest,menuone
  function! OmniPopup(action)
      if pumvisible()
          if a:action == 'j'
              return "\<C-N>"
          elseif a:action == 'k'
              return "\<C-P>"
          endif
      endif
      return a:action
  endfunction

  inoremap <silent><C-j> <C-R>=OmniPopup('j')<CR>
  inoremap <silent><C-k> <C-R>=OmniPopup('k')<CR>


" Python folding
" mkdir -p ~/.vim/ftplugin
" wget -O ~/.vim/ftplugin/python_editing.vim http://www.vim.org/scripts/download_script.php?src_id=5492
  set nofoldenable

我添加了此内容,以便在F2

时启用复制和粘贴功能
set pastetoggle=<F2>
  set clipboard=unnamed

我想启用该功能。请帮忙 感谢的

1 个答案:

答案 0 :(得分:1)

通常情况下,Vim会将其复制到自己的内部寄存器中。 如果要抽取到特定的寄存器,请使用该寄存器的指示前置您的抽头操作。 例如,用一条线来注册x使用

"xyy

要将您的视觉选择拉到注册z,请使用

"zy

全局剪贴板在寄存器*或注册+中,具体取决于您的系统

因此,要抓住其中一个寄存器,请用*或+

替换x和z

同样,要从全局剪贴板中放入(粘贴),请使用

"*p

"+p