精华内容
下载资源
问答
  • Vim基本命令及复制粘贴文件

    千次阅读 2018-11-18 20:10:50
    1 复制文件 描述 ANN.py文件内容复制到ANNcopy.py中。 1.1 分割 # 打开ANN.py文件 vim ANN.py # 横向分割 :sp # 纵向切割 :vsp 横向切割 图1.1 横向切割 纵向切割 图1.2 纵向切割 ...

    1 基本指令

    1.0 文件编辑&保存

    文件内容编辑.

    序号 指令 描述
    1 vim *.py 新建文件,如test.py, test.c
    2 :set nu 显示行号
    3 :set nonu 取消显示行号
    4 i 进入编辑模式,注意不使用冒号
    5 esc 退出编辑模式
    6 :w 保存编辑的文件,保持文件窗口不变
    7 :wq 保存编辑文件,并退出文件窗口,恢复命令行窗口
    8 :q! 强制退出,不保存编辑
    9 :q 普通退出,如果未保存,会提示,若未编辑文件,则正常退出
    10 ? /abc /def 替换操作,将abc替换为def,只替换光标所在行

    1.2 文件级写入及切换

    对整个文件进行操作,如文件1全部写入文件2等.

    序号 指令 描述
    1 :r test2.py 读取,将文件如test2.py写入当前文件test1.py中,复制位置为当前文件光标之后
    2 :w test1.py 写入,将当前打开的文件如test2.py写入test1.py中
    3 :f 显示行数及所有行的占用比例
    4 :e! 返回到上次保存
    5 :e test2.py 切换文件,如当前文件test.py,切换为test2.py
    6 :n 切换文件,同时编辑多个文件vim test1.py test2.py 使用:n向后切换文件,如需返回,使用:e test1.py

    1.3 文件搜索替换

    文件内容搜索替换等.

    序号 指令 描述
    1 u 撤销上一步操作,注意该命令没有冒号哟
    2 /abc 查找命令,如查找abc
    3 dw 删除单词
    4 dd 删除行
    5 o 新建空白行
    6 vim + a.py 编辑或新建(若文件不存在),光标在a.py文件最后一行,进行编辑
    7 vim a.py 编辑(或新建,若文件不存在),光标在a.py第一行进行编辑
    8 :2, .s /abc/def 定点替换(字符级别),文件第2行的abc替换为def,其中2表示起始行; dot .表示结束行是当前行,s表示搜索,/abc为搜索对象,使用def替换
    9 :1, $s/abc/def 全文替换(字符级别),$表示最后一行
    10 :%s/abc/def/g 全文替换(字符级别),g表示最后一行

    1.4 光标控制

    序号 指令 描述
    1 h 左移一个字符,本行内
    2 j 向下移动一行
    3 k 向上移动一行
    4 l 向右移动一个字符,本行内
    5 w 光标移动到下一个字的开始
    6 W 光标移动到下一个字的开始,忽略标点符号
    7 b 移动到上一个字的开始
    8 B 移动到上一个字的开始,忽略标点符号
    9 L 移动到屏幕显示最后一行
    10 M 移动到屏幕显示的中间一行
    11 H 移动到屏幕显示的第一行
    12 e 移动到一个字的结尾
    13 E 移动到一个字的结尾,忽略标点符号
    14 ( 移动到句子开头
    15 ) 移动到句子结尾
    16 { 移动到段落开头
    17 } 移动到段落结尾
    18 G 移动到文件最后一行
    19 gg 移动到文件第一行

    1.5 翻页

    序号 指令 描述
    1 ctrl+e 屏幕上滚一行
    2 ctrl+y 屏幕下滚一行
    3 ctrl+u 屏幕上滚半页
    4 ctrl+d 屏幕下滚半页
    5 ctrl+b 屏幕上滚一页
    6 ctrl+f 屏幕下滚一页
    7 ctrl+w 切换文件,通过分割窗口的文件间切换

    1.6 复制粘贴命令

    序号 指令 描述
    1 v 按字符选择文本
    2 V 按行选择文本
    3 y 复制
    4 p 粘贴
    5 yy 复制当前行
    6 nyy 复制n行

    2 复制粘贴文件测试

    • 描述
      ANN.py文件内容复制到ANNcopy.py中。

    2.1 分割

    # 打开ANN.py文件
    vim ANN.py
    # 横向分割
    :sp 
    # 纵向切割
    :vsp
    

    2.1.0 横向切割

    上下显示


    sp横向切割

    图1.1 横向切割

    2.1.2 纵向切割

    左右显示.


    vsp纵向切割

    图1.2 纵向切割

    2.2 打开目标ANNcopy.py文件

    :e ANNcopy.py
    
    图1.3 ANNcopy与ANN.py共存

    2.3 选择复制的文本

    # 切换光标(文件间切换)
    # 从ANNcopy.py切换到ANN.py
    ctrl+w
    # 光标移动到第一行
    gg
    # 光标移动到最后一行
    G
    # 选择文本
    # 按字符选择(小写v)
    v
    # 按行选择(大写V)
    V
    # 选择流程
    # 选择部分
    gg + v/V + 上下键
    # 全选
    gg + V + G
    

    2.4 复制&粘贴

    # 复制(无冒号:)
    y
    # 粘贴(无冒号:)
    p
    # 保存
    :w
    

    2.4.1 复制

    copy

    图1.4 复制

    2.4.2 粘贴

    paste

    图1.5 粘贴

    2.4.3 保存

    save

    图1.6 保存

    [参考文献]
    [1]https://www.cnblogs.com/mrcln/p/5720435.html


    更新ing
    展开全文
  • 在安装Ubuntu系统后发现与Windows系统的文件不能相互复制,网上查了很多教程,发现都是不能用的,能实现的方法如下所示: 第一步: sudo apt-get autoremove open-vm-tools 第二步:sudo apt-get install open-vm-...

    在安装Ubuntu系统后发现与Windows系统的文件不能相互复制,网上查了很多教程,发现都是不能用的,能实现的方法如下所示:
    第一步: sudo apt-get autoremove open-vm-tools
    第二步:sudo apt-get install open-vm-tools-desktop
    然后重启
    ————————————————
    版权声明:本文为CSDN博主「谁谁的博客」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/rooki_men/article/details/78967840

    解决ubuntu16.04 ‘E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) ’ 问题

    问题:

    当运行sudo apt-get install/update/其他命令时,会出现如下提示:

    E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
    E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

    出现这个问题的原因可能是:

    在ubuntu系统的termial下,用apt-get install 安装软件的时候,如果在未完成下载的情况下将terminal close。此时 apt-get进程可能没有结束。结果,如果再次运行apt-get install 命令安装软件时,出现如上错误。即有另一个程序正在占用apt-get install进程,由于它在运行时,会占用软件源更新时的系统锁(简称‘系统更新锁’),此时资源被锁。

    所以,第一种方法,我们只需要杀死之前的进程,释放系统锁就可以了:

    ps -e|grep apt-get
    

    显示

     6965 ?        00:00:01 apt-get
    

    然后执行

    sudo kill 6965
    

    第二种方法,强制解锁

    $ sudo rm /var/cache/apt/archives/lock  
    $ sudo rm /var/lib/dpkg/lock
    

    版权声明:本文为CSDN博主「CLAY-Z」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_38019633/article/details/84024309

    展开全文
  • 下文 摘自:... 1、安装VIM  $sudo apt-get install vim-full 2、安装中文帮助文档(因为默认只安装了英文帮助文档) ...下载以后是一个zip归档文件,解压后执行 ./vimcdoc.sh -i

    下文 摘自:http://blog.csdn.net/leisure512/article/details/4202639

    安装VIM及其配置文件.vimrc

    主要使用其4和5项

    1、安装VIM

     $sudo apt-get install vim-full

    2、安装中文帮助文档(因为默认只安装了英文帮助文档)

    http://vcd.gro.clinux.org
    下载以后是一个zip归档文件,解压后执行
    ./vimcdoc.sh -i
    这会安装帮助文档到~/.vim/

    3、修改~/.vimrc配置文件

     $vim ~/.vimrc
     :read $VIMRUNTIME/vimrc_example.vim
    在文件最后加入以下语句
    set tabstop=4 "我是注释
    set shiftwidth=4 
    set softtabstop=4
    set nu "显示行号
    colorscheme evening "颜色配置文件在/usr/shar/vim

       "/vim72/colors/目录下


    4、安装目录浏览器插件NERD Tree

    下载地址:http://linux.softpedia.com/get/Utilities/NERD-tree-36487.shtml
    下载以后解压缩为NERD Tree目录
    下面有两个目录doc和plugin
     $cp doc/* ~/.vim/doc/
     $cp plugin/* ~/.vim/plugin
    5、检查效果
     $vim ~/.vimrc

     在VIM中输入:NERDTree


    下文 摘自:http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html

    5、当前使用的VIM配置

    我的vim配置主要有以下优点:

    1.按F5可以直接编译并执行C、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试

    2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改

    3.映射“Ctrl + A”为全选并复制快捷键,方便复制代码

    4.按“F2”可以直接消除代码中的空行

    5.“F3”可列出当前目录文件,打开树状文件目录

    6. 支持鼠标选择、方向键移动

    7. 代码高亮,自动缩进,显示行号,显示状态行

    8.按“Ctrl + P”可自动补全

    9.[]、{}、()、""、' '等都自动补全

    10.其他功能读者可以研究以下文件

     vim本来就是很强大,很方便的编辑器,加上我的代码后肯定会如虎添翼,或许读者使用其他编程语言,可以根据自己的需要进行修改,配置文件里面已经加上注释。

    读者感兴趣的话直接复制下面的代码到文本文件,然后把文件改名为“ .vimrc” (不要忘记前面的“.”),然后把文件放到用户文件夹的根目录下面即可。重新打开vim即可看到效果。

    为方便管理,源码托管到了github,后期增加了好多新功能,

    具体详见:https://github.com/ma6174/vim

    这是在github上的vim配置的截图:

     

     下面是精简的,没有插件的vim配置文件,保存到自己的.vimrc文件就能使用。

    复制代码

    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " 显示相关  
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

    "set shortmess=atI   " 启动的时候不显示那个援助乌干达儿童的提示  
    "winpos 5 5          " 设定窗口位置  
    "set lines=40 columns=155    " 设定窗口大小  
    "set nu              " 显示行号  
    set go=             " 不要图形按钮  
    "
    color asmanian2     " 设置背景主题  
    set guifont=Courier_New:h10:cANSI   " 设置字体  
    "
    syntax on           " 语法高亮  
    autocmd InsertLeave * se nocul  " 用浅色高亮当前行  
    autocmd InsertEnter * se cul    " 用浅色高亮当前行  
    "
    set ruler           " 显示标尺  
    set showcmd         " 输入的命令显示出来,看的清楚些  
    "
    set cmdheight=1     " 命令行(在状态行下)的高度,设置为1  
    "set whichwrap+=<,>,h,l   " 允许backspace和光标键跨越行边界(不建议)  
    "set scrolloff=3     " 光标移动到buffer的顶部和底部时保持3行距离  
    set novisualbell    " 不要闪烁(不明白)  
    set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}   "状态行显示的内容  
    set laststatus=1    " 启动显示状态行(1),总是显示状态行(2)  
    set foldenable      " 允许折叠  
    set foldmethod=manual   " 手动折叠  
    "
    set background=dark "背景使用黑色 
    set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  
    "
     显示中文帮助
    if version >= 603
        set helplang=cn
        set encoding=utf-8
    endif
    " 设置配色方案
    "
    colorscheme murphy
    "
    字体 
    "
    if (has("gui_running")) 
    "
       set guifont=Bitstream\ Vera\ Sans\ Mono\ 10 
    "
    endif 

     

    set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
    set termencoding=utf-8
    set encoding=utf-8
    set fileencodings=ucs-bom,utf-8,cp936
    set fileencoding=utf-8
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    """""新文件标题""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "新建.c,.h,.sh,.java文件,自动插入文件头 
    autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" 
    ""定义函数SetTitle,自动插入文件头 
    func SetTitle() 
        "如果文件类型为.sh文件 
        if &filetype == 'sh' 
            call setline(1,"\#########################################################################"
            call append(line("."), "\# File Name: ".expand("%")) 
            call append(line(".")+1"\# Author: ma6174"
            call append(line(".")+2"\# mail: ma6174@163.com"
            call append(line(".")+3"\# Created Time: ".strftime("%c")) 
            call append(line(".")+4"\#########################################################################"
            call append(line(".")+5"\#!/bin/bash"
            call append(line(".")+6""
        else 
            call setline(1"/*************************************************************************"
            call append(line("."), "    > File Name: ".expand("%")) 
            call append(line(".")+1"    > Author: ma6174"
            call append(line(".")+2"    > Mail: ma6174@163.com "
            call append(line(".")+3"    > Created Time: ".strftime("%c")) 
            call append(line(".")+4" ************************************************************************/"
            call append(line(".")+5"")
        endif
        if &filetype == 'cpp'
            call append(line(".")+6"#include<iostream>")
            call append(line(".")+7"using namespace std;")
            call append(line(".")+8"")
        endif
        if &filetype == 'c'
            call append(line(".")+6"#include<stdio.h>")
            call append(line(".")+7"")
        endif
        "新建文件后,自动定位到文件末尾
        autocmd BufNewFile * normal G
    endfunc 
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "键盘命令
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

    nmap <leader>w :w!<cr>
    nmap <leader>f :find<cr>

    " 映射全选+复制 ctrl+a
    map <C-A> ggVGY
    map! <C-A> <Esc>ggVGY
    map <F12> gg=G
    " 选中状态下 Ctrl+c 复制
    vmap <C-c> "+y
    "去空行  
    nnoremap <F2> :g/^\s*$/d<CR> 
    "比较文件  
    nnoremap <C-F2> :vert diffsplit 
    "新建标签  
    map <M-F2> :tabnew<CR>  
    "列出当前目录文件  
    map <F3> :tabnew .<CR>  
    "打开树状文件目录  
    map <C-F3> \be  
    "C,C++ 按F5编译运行
    map <F5> :call CompileRunGcc()<CR>
    func! CompileRunGcc()
        exec "w"
        if &filetype == 'c'
            exec "!g++ % -o %<"
            exec "! ./%<"
        elseif &filetype == 'cpp'
            exec "!g++ % -o %<"
            exec "! ./%<"
        elseif &filetype == 'java' 
            exec "!javac %" 
            exec "!java %<"
        elseif &filetype == 'sh'
            :!./%
        endif
    endfunc
    "C,C++的调试
    map <F8> :call Rungdb()<CR>
    func! Rungdb()
        exec "w"
        exec "!g++ % -g -o %<"
        exec "!gdb ./%<"
    endfunc
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    ""实用设置
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " 设置当文件被改动时自动载入
    set autoread
    " quickfix模式
    autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
    "代码补全 
    set completeopt=preview,menu 
    "允许插件  
    filetype plugin on
    "共享剪贴板  
    set clipboard+=unnamed 
    "从不备份  
    set nobackup
    "make 运行
    :set makeprg=g++\ -Wall\ \ %
    "自动保存
    set autowrite
    set ruler                   " 打开状态栏标尺
    set cursorline              " 突出显示当前行
    set magic                   " 设置魔术
    set guioptions-=T           " 隐藏工具栏
    set guioptions-=m           " 隐藏菜单栏
    "set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
    " 设置在状态行显示的信息
    set foldcolumn=0
    set foldmethod=indent 
    set foldlevel=3 
    set foldenable              " 开始折叠
    " 不要使用vi的键盘模式,而是vim自己的
    set nocompatible
    " 语法高亮
    set syntax=on
    " 去掉输入错误的提示声音
    set noeb
    " 在处理未保存或只读文件的时候,弹出确认
    set confirm
    " 自动缩进
    set autoindent
    set cindent
    " Tab键的宽度
    set tabstop=4
    " 统一缩进为4
    set softtabstop=4
    set shiftwidth=4
    " 不要用空格代替制表符
    set noexpandtab
    " 在行和段开始处使用制表符
    set smarttab
    " 显示行号
    set number
    " 历史记录数
    set history=1000
    "禁止生成临时文件
    set nobackup
    set noswapfile
    "搜索忽略大小写
    set ignorecase
    "搜索逐字符高亮
    set hlsearch
    set incsearch
    "行内替换
    set gdefault
    "编码设置
    set enc=utf-8
    set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
    "语言设置
    set langmenu=zh_CN.UTF-8
    set helplang=cn
    " 我的状态行显示的内容(包括文件类型和解码)
    "set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
    "set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
    " 总是显示状态行
    set laststatus=2
    " 命令行(在状态行下)的高度,默认为1,这里是2
    set cmdheight=2
    " 侦测文件类型
    filetype on
    " 载入文件类型插件
    filetype plugin on
    " 为特定文件类型载入相关缩进文件
    filetype indent on
    " 保存全局变量
    set viminfo+=!
    " 带有如下符号的单词不要被换行分割
    set iskeyword+=_,$,@,%,#,-
    " 字符间插入的像素行数目
    set linespace=0
    " 增强模式中的命令行自动完成操作
    set wildmenu
    " 使回格键(backspace)正常处理indent, eol, start等
    set backspace=2
    " 允许backspace和光标键跨越行边界
    set whichwrap+=<,>,h,l
    " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
    set mouse=a
    set selection=exclusive
    set selectmode=mouse,key
    " 通过使用: commands命令,告诉我们文件的哪一行被改变过
    set report=0
    " 在被分割的窗口间显示空白,便于阅读
    set fillchars=vert:\ ,stl:\ ,stlnc:\
    " 高亮显示匹配的括号
    set showmatch
    " 匹配括号高亮的时间(单位是十分之一秒)
    set matchtime=1
    " 光标移动到buffer的顶部和底部时保持3行距离
    set scrolloff=3
    " 为C程序提供自动缩进
    set smartindent
    " 高亮显示普通txt文件(需要txt.vim脚本)
    au BufRead,BufNewFile *  setfiletype txt
    "自动补全
    :inoremap ( ()<ESC>i
    :inoremap ) <c-r>=ClosePair(')')<CR>
    :inoremap { {<CR>}<ESC>O
    :inoremap } <c-r>=ClosePair('}')<CR>
    :inoremap [ []<ESC>i
    :inoremap ] <c-r>=ClosePair(']')<CR>
    :inoremap " ""<ESC>i
    :inoremap ' ''<ESC>i
    function! ClosePair(char)
        if getline('.')[col('.') - 1] == a:char
            return "\<Right>"
        else
            return a:char
        endif
    endfunction
    filetype plugin indent on 
    "打开文件类型检测, 加了这句才可以用智能补全
    set completeopt=longest,menu
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " CTags的设定  
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    let Tlist_Sort_Type = "name"    " 按照名称排序  
    let Tlist_Use_Right_Window = 1  " 在右侧显示窗口  
    let Tlist_Compart_Format = 1    " 压缩方式  
    let Tlist_Exist_OnlyWindow = 1  " 如果只有一个buffer,kill窗口也kill掉buffer  
    let Tlist_File_Fold_Auto_Close = 0  " 不要关闭其他文件的tags  
    let Tlist_Enable_Fold_Column = 0    " 不要显示折叠树  
    autocmd FileType java set tags+=D:\tools\java\tags  
    "autocmd FileType h,cpp,cc,c set tags+=D:\tools\cpp\tags  
    "let Tlist_Show_One_File=1            "不同时显示多个文件的tag,只显示当前文件的
    "设置tags  
    set tags=tags  
    "set autochdir 

    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "其他东东
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "默认打开Taglist 
    let Tlist_Auto_Open=1 
    """""""""""""""""""""""""""""" 
    " Tag list (ctags) 
    """""""""""""""""""""""""""""""" 
    let Tlist_Ctags_Cmd = '/usr/bin/ctags' 
    let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的 
    let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim 
    let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口
    " minibufexpl插件的一般设置
    let g:miniBufExplMapWindowNavVim = 1
    let g:miniBufExplMapWindowNavArrows = 1
    let g:miniBufExplMapCTabSwitchBufs = 1

    let g:miniBufExplModSelTarget = 1   

    复制代码

     

    为了方便大家下载使用,我把它放到我的空间里了,两个命令就可以瞬间得到.vimrc文件

    wget  http://files.cnblogs.com/ma6174/vimrc.zip

    unzip  -f  vimrc.zip  -d  ~/


    简易安装方法:

    打开终端,执行下面的命令就自动安装好了:

    wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x

    或者自己手动安装:(以ubuntu为例)

    1. 安装vim sudo apt-get install vim
    2. 安装ctags:sudo apt-get install ctags
    3. 安装一些必备程序:sudo apt-get install xclip vim-gnome astyle python-setuptools
    4. python代码格式化工具:sudo easy_install -ZU autopep8
    5. sudo ln -s /usr/bin/ctags /usr/local/bin/ctags
    6. clone配置文件:cd ~/ && git clone git://github.com/ma6174/vim.git
    7. mv ~/vim ~/.vim
    8. mv ~/.vim/.vimrc ~/
    9. clone bundle 程序:git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
    10. 打开vim并执行bundle程序:BundleInstall
    11. 重新打开vim即可看到效果


    vim 使用tip

    编写python程序

    1. 自动插入头信息:
      • #!/usr/bin/env python
      • # coding=utf-8
    2. 输入.或按TAB键会触发代码补全功能
    3. :w保存代码之后会自动检查代码错误与规范
    4. F6可以按pep8格式对代码格式优化
    5. F5可以一键执行代码

    多窗口操作

    1. 使用:sp + 文件名可以水平分割窗口
    2. 使用:vs + 文件名可以垂直分割窗口
    3. 使用Ctrl + w可以快速在窗口间切换

    编写markdown文件

    1. 编写markdown文件(*.md)的时候,在normal模式下按 md 即可在当前目录下生成相应的html文件
    2. 生成之后还是在normal模式按fi可以使用firefox打开相应的html文件预览
    3. 当然也可以使用万能的F5键来一键转换并打开预览
    4. 如果打开过程中屏幕出现一些混乱信息,可以按Ctrl + l来恢复

    快速注释

    • \ 可以根据文件类型自动注释

     

    VIM快捷键:

     


    光标移动:四个方向
       k
    h 0 l
       j
      ctrl+f, ctrl+b                 向下翻页,向上翻页
      ctrl+d, ctrl+u                 向下半翻页,向上半翻页
      $    移动行尾
      0    移动行首
      w    移动下一个词
      b    移动到上一个词
      gg   跳到文档的开始处
      G    跳到文档的末尾
      %    跳到匹配的括号处("{ }""[]""()")
      ctrl+i,tab                  跳到下一个jump point
      ctrl+o   跳到上一个jump point
      23gg, 23G, :23 跳到第23行
      ctrl+i, tab  跳到下一个跳点(Jump Point)
      ctrl+o  跳到上一个跳点
    查找替换:
    #  从光标向后查找整个关键词
    * 从光标向前查找整个关键词
    g# 从光标向后查找关键词
    g* 从光标向前查找关键词
    fx,tx,Fx,Tx    在当前行查找字符
    查找替换例子:
    : s/SEARCH/REPLACE
    : s/If/Since          将下一个"If"换成"Since"
    : %s/If/Since       将全部"If"换成"Since"
    : 1,3 s/If/Since/g  只对1,3行有效,如无前缀,只对当前行有效
    表达式:
    . 代替一个字符
    * 表示一个或多个字符的重复

    /d.*an 可以匹配 dan, divan, debian

    单词边界:
    指定单词边界: /
    如: //    匹配以d开始,中间包含任意个小写字母,以an结束的单词
    //$[0-9]*/.[0-9][0-9] 匹配查找 $XX...X.XX这要的数字,有且只有两位小数的
    常用的编辑命令:
    a, i   在光标后插入, 在光标前插入
    dd  删除一行
    cc,S  删除一行后进入insert模式
    dw  删除一个单词
    cw  删除一个单词后进入insert模式
    x,dl  删除一个字符
    s,cl  删除一个字符后进入insert模式
    p  粘贴
    xp  交换两个字符
    ddp  交换两行
    y  复制
    yy  复制一行
    u  撤消
    ctrl+r                 重做
    .  重复上一次修改

    ctrl+r                重做
    .  重复上一次修改

    划分窗格:
    :split/vsplit                分隔一个窗口
    :new/vnew 创建一个新的窗口
    :sf {filename}            在新窗口中打开filename
    :close  关闭当前窗口
    :only  关闭除当前窗口外所有窗口
    :ctrl-w h      到左面的窗口
    :ctrl-w j      到下面的窗口
    :ctrl-w k      到上面的窗口
    :ctrl-w l      到右面的窗口
    :ctrl-w t      到顶部的窗口
    :ctrl-w b      到底部的窗口

    重复操作(宏操作):
    q[a-z]  开始记录操作,记录到寄存器[a-z]中
    q  停止记录操作
    @[a-z]  执行寄存器中的操作
    @@  执行最近寄存器中记录的操作
    例子: 一个缓冲区有两行:
      sys/types.h
      stdio.h
    -->要改为:
      #i nclude 
      #i nclude 
    操作如下:
      qa #开始记录
      ^ #移动行首
      i #进入insert模式
      #i nclude  #输入内容
      q #停止记录
      移动另一行:
      @a即可执行相同的操作

    Visual Mode操作:
    ctrl+v                 进入基于块的可视模式
    v  进入基于字符的可视模式
    V  进入基于行的可视模式

    c  删除选定的块
    I{string} 选定块后按大写的I,输入字符串,再按ESC,可以在块内每一行插入相同的内容

    跳到声明处:
    [[  向前跳到顶格的第一个"{"
    []  向前跳到顶格的第一个"}"
    ][  向后跳到顶格的第一个"{"
    ]]  向后跳到顶格的第一个"}"
    [{  跳到本代码块(由{}界定)的开头
    [}  跳到本代码块的结尾
    Shell:
    :ctrl+z/suspend 在shell下是挂起vim; gui下是最小化窗口
    :!{command} 执行shell命令
    :shell  开一个新的shell

    保存vim状态(挂起?):
    :mksession session.vim      保存当前vim状态
    :source session.vim         回复vim状态
    vim -S session.vim         启动vim时恢复session

     


    高效率移动


    在插入模式之外
    基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面VIM就像一个“哑巴”编辑器一样。很多新手都会一直呆在插入模式里面,因为这样易于
    使用。但VIM的强大之处在于他的命令行模式!你会发现,在你越来越了解VIM之后,你就会花越来越少的时间使用插入模式了。
    使用 h,j,k,l
    使用VIM高效率编辑的第一步,就是放弃使用箭头键。使用VIM,你就不用频繁的在箭头键和字母键之间移来移去了,这会节省你很多时间。当你在命令模式
    时,你可以用h,j,k,l来分别实现左,下,上,右箭头的功能。一开始可能需要适应一下,但一旦习惯这种方式,你就会发现这样操作的高效之处了。
    在你编辑你的电子邮件或者其他有段落的文本时,你可能会发现使用方向键和你预期的效果不一样,有时候可能会一次跳过了很多行。这是因为你的段落在VIM看
    来是一个大的长长的行。这时你可以在按h,j,k或者l 之前键入一个g,这样VIM就会按屏幕上面的行如你所愿的移动了。
    在当前行里面有效的移动光标
    很多编辑器只提供了简单的命令来控制光标的移动(比如左,上,右,下,到行首/尾等)。VIM则提供了很多强大的命令来满足你控制光标的欲望。当光标从一
    点移动到另外一点,在这两点之间的文本(包括这两个点)称作被“跨过”,这里的命令也被称作是motion。(简单说明一下,后面会用到这个重要的概念)
    这里是常用到的一些命令(motion):
    fx:移动光标到当前行的下一个x处。很明显,x可以是任意一个字母,而且你可以使用;来重复你的上一个f命令。
    tx:和上面的命令类似,但是是移动到x的左边一个位置。(这真的很有用)
    Fx:和fx类似,不过是往回找。
    w:光标往前移动一个词。
    b: 光标往后移动一个词。
    0: 移动光标到当前行首。
    ^:移动光标到当前行的第一个字母位置。
    $: 移动光标到行尾。
    ):移动光标到下一个句子。
    ( : 移动光标到上一个句子。
    在整个文件里面有效移动光标
    VIM有很多命令,可以用来到达文件里面你想到达的地方。下面是一些在文件里面移动的命令:
    :向下移动一屏。
    :向上移动一屏。
    G:到文件尾
    numG:移动光标到指定的行(num)。(比如10G就是到第10行)
    gg:到文件首
    H:移动光标到屏幕上面
    M:移动光标到屏幕中间
    L:移动光标到屏幕下面
    *:读取光标处的字符串,并且移动光标到它再次出现的地方。
    #:和上面的类似,但是是往反方向寻找。
    /text:从当前光标处开始搜索字符串text,并且到达text出现的地方。必须使用回车来开始这个搜索命令。如果想重复上次的搜索的话,按n。
    ?text:和上面类似,但是是反方向。
    ma:在当前光标的位置标记一个书签,名字为a。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。
    `a:到书签a处。注意这个不是单引号,它一般位于大部分键盘的1的左边。
    `.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。

     

     

    高效的输入


    使用关键词自动完成
    VIM
    有一个非常漂亮的关键词自动完成系统。这表示,你可以输入一个长词的一部分,然后按一下某个键,然后VIM就替你完成了这个长词的输入了。举个例子:你有
    一个变量名为 iAmALongAndAwkwardVarName 在你写的代码的某个地方。也许你不想每回都自己一个一个字母的去输入它。
    使用关键词自动完成功能,你只需要输入开始几个字母(比如iAmAL),然后按(按住Ctrl,再按N)或者。如果VIM没有给出你想要的词,基本按,直到你满意为止,VIM会一直循环它找到的匹配的字符串。
    聪明的进入插入模式
    很多新手进入插入模式都只是用i。这样当然可以进入插入模式,但通常不是那么合适,因为VIM提供了很多进入插入模式的命令。下面是最常用的一些:
    i:在当前字符的左边插入
    I:在当前行首插入
    a:在当前字符的右边插入
    A:在当前行尾插入
    o:在当前行下面插入一个新行
    O:在当前行上面插入一个新行
    c{motion}:删除motion命令跨过的字符,并且进入插入模式。比如:c$,这将会删除从光标位置到行尾的字符并且进入插入模式。ct!,这会删除从光标位置到下一个叹号(但不包括),然后进入插入模式。被删除的字符被存在了剪贴板里面,并且可以再粘贴出来。
    d{motion}:和上面差不多,但是不进入插入模式。
    有效的移动大段的文本
    使用可视选择(visual selections)和合适的选择模式
    不想最初的VI,VIM允许你高亮(选择)一些文本,并且进行操作。这里有三种可视选择模式:
    v:按字符选择。经常使用的模式,所以亲自尝试一下它。
    V:按行选择。这在你想拷贝或者移动很多行的文本的时候特别有用。
    :按块选择。非常强大,只在很少的编辑器中才有这样的功能。你可以选择一个矩形块,并且在这个矩形里面的文本会被高亮。
    在选择模式的时候使用上面所述的方向键和命令(motion)。比如,vwww,会高亮光标前面的三个词。Vjj将会高亮当前行以及下面两行。
    在可视选择模式下剪切和拷贝
    一旦你高亮了选区,你或许想进行一些操作:
    d:剪贴选择的内容到剪贴板。
    y:拷贝选择的内容到剪贴板。
    c:剪贴选择的内容到剪贴板并且进入插入模式。
    在非可视选择模式下剪切和拷贝
    如果你很清楚的知道你想拷贝或者剪切什么,那你根本就不需要进入可视选择模式。这样也会节省时间:
    d{motion}:剪切motion命令跨过的字符到剪贴板。比如,dw会剪切一个词而dfS会将从当前光标到下一个S之间的字符剪切至剪贴板。
    y{motion}:和上面类似,不过是拷贝。
    c{motion}:和d{motion}类似,不过最后进入插入模式。
    dd:剪切当前行。
    yy:拷贝当前行。
    cc:剪切当前行并且进入插入模式。
    D:剪切从光标位置到行尾到剪贴板。
    Y:拷贝当前行。
    C:和D类似,最后进入插入模式。
    x:剪切当前字符到剪贴板。
    s:和x类似,不过最后进入插入模式。
    粘贴
    粘贴很简单,按p。
    使用多重剪贴板
    很多编辑器都只提供了一个剪贴板。VIM有很多。剪贴板在VIM里面被称为寄存器(Registers)。你可以列出当前定义的所有寄存器名和它们的内容,命令为":reg"。最好使用小写字母来作为寄存器的名称,因为大写的有些被VIM占用了。
    使用寄存器的命令为双引号“。
    比如:我们要拷贝当前行到寄存器k。你应该按 "kyy。(你也可以使用 V"ky。为什么这样也可以呢?)现在当前行应该已经存在了寄存器k里面直到你又拷贝了一些东西进入寄存器k。现在你可以使用命令 "kp 来粘贴寄存器k里面的内容到你想要的位置。
    避免重复
    令人惊奇的 . 命令
    在VI里面,输入 . (小数点符号),将会重复你给入的上一个命令。比如,你上个命令为 'dw'(删除一个词),VI将会接着再删除一个词。
    使用数字
    使用数字也是VIM强大的而且很节省时间的重要特性之一。在很多VIM的命令之前都可以使用一个数字,这个数字将会告诉VIM这个命令需要执行几次。比如:
    3j 将会把光标向下移动三行。
    10dd 将会删除十行。
    y3" 将会拷贝从当前光标到第三个出现的引号之间的内容到剪贴板。
    数字是扩展motion命令作用域非常有效的方法。
    记录宏
    有时候,你会发现你自己在文章的每段或者每行都重复相同的一系列动作。VIM允许你记录一个宏来完成你的特殊需要。
    qregister:记录宏到寄存器register,这里register是任意的你的寄存器的名字。比如qa,将会记录并且把宏存在寄存器a里面。
    q:结束宏的记录。
    @register:使用存在寄存器register的宏。比如@a,将会使用存在寄存器a里面的宏。
    必须要记住的是,宏只记录了你的系列按键并且重复执行它们。它们不是魔法。因为在VIM里面完成目的的方法有很多,所以有时候你要小心选择命令来记录你的宏。因为它们会在所有你要执行它的地方执行。

    用VIM写代码

    VIM是一个绝好的编辑器来写代码,因为它有一些特性是专门为程序员而设。这里是一些常用的:
    ]p:和p的功能差不多,但是它会自动调整被粘贴的文本的缩进去适应当前代码的位置。试一下!
    %:匹配花括号,方括号,括号等。在一个括号的上面,然后按%,鼠标就会出现在匹配的另外一半括号处。
    >>:缩进所有选择的代码


    自由复制粘贴

    sudo apt-get install vim-gnome即可

    展开全文
  • “操作无法完成,因为文件或文件夹已经在另一个程序中打开,请关闭该文件在重试。” 任務管理器,性能,資源監視器,關聯的句柄, 輸入文件文件夾的名稱,搜索出來之後,結束進程。 然後就可以進行操作了 转载于:...

    “操作无法完成,因为文件或文件夹已经在另一个程序中打开,请关闭该文件在重试。”

    任務管理器,性能,資源監視器,關聯的句柄,

    輸入文件或文件夾的名稱,搜索出來之後,結束進程。

    然後就可以進行操作了

    转载于:https://www.cnblogs.com/pengzhen/p/6909974.html

    展开全文
  • 在解决“文件占用”的问题,有时候除了即时释放资源句柄,还需要使用对象的深度复制,这样就相当于斩断了原对象的占用。 ==========正文开始=================== C# ...
  • Vim 复制粘贴探秘

    2014-12-15 20:48:28
    Vim 作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。...最近使用Vim来写博客,发现在Vim中粘贴Python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的缘故,于是做如下设置
  • VIM复制粘贴

    2013-08-05 09:01:41
    Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。...最近使用Vim来写博客,发现在Vim中粘贴Python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的缘故,于是做如下设置: 
  • 今天在复制数据库的时候出现了问题。...其次SQL Server 2012 的数据库默认存储的文件类型是.mdf,当我想复制文件的时候,它提示我不能复制,正在被占用。于是我又开始百度了……哇哈哈……找到许多大神都
  • vim复制粘贴探秘

    2013-08-30 14:17:51
    Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。...最近使用Vim来写博客,发现在Vim中粘贴Python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的缘故,于是做如下设置: 
  • Vim复制粘贴探秘

    2013-05-10 13:31:47
    Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。... 最近使用Vim来写博客,发现在Vim中粘贴Python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的缘故,于是做如下设置: :s
  • vim 复制粘贴探秘

    2013-03-11 20:14:52
    im作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。...最近使用Vim来写博客,发现在Vim中粘贴Python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的缘故,于是做如下设置:
  • 在emacs下复制粘贴是这样的。 1、在任一行中按下ctrl+space键,最底行会显示 Mark set 表示已经开始标记了。 2、移动鼠标或者选中文字然后,可以有两种方式:Alt+w (复制) 或者 Ctrl+w (剪切)。如果您选择复制,...
  • Vim 复制粘贴探秘

    2013-04-03 11:31:38
    Vim 复制粘贴探秘 Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。每当学会了vim的一个新功能,就会很大地提高工作效率。有人使用vim几十年,还没有完全掌握vim的功能,这也说明了vim...
  • 前两天使用Eclipse出现了以前没遇到过的小问题——编辑js文件时总是会卡死、cpu占用过高,风扇超速运转...网上搜集了一些解决方式, 特殊转发一下供大家分享. 1、取消验证 windows–&gt;perferences–&...
  • [转]Vim 复制粘贴探秘

    2012-12-10 13:21:04
    [转]Vim 复制粘贴探秘 Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。每当学会了vim的一个新功能,就会很大地提高工作效率。有人使用vim几十年,还没有完全掌握vim的功能,这也...
  • 可是有用户发现电脑系统一个磁盘分区显示的已用空间和磁盘内的文件占用的空间不符合,显示的文件所占的空间比实际已用的空间小。为什么会产生这样的问题呢?1、打开H盘属性,可以看到H盘的已用空间为27.2GB;2、打开H...
  • 要说vim寄存器,就要从vim文件间的复制粘贴说起。 Vim 中,若要复制当前行,普通模式下按 yy 即可,在要粘贴的地方按 p 。这是vim将复制内容保存到了自己的寄存器中的缘故。如果在其他地方执行yy,新的内容将...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,232
精华内容 7,692
关键字:

复制粘贴时显示文件占用