两篇使用的vim复制粘贴比较高级的用法

http://www.cnblogs.com/hustcat/articles/1791371.html

vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽;上次论坛上有人问到了怎么在vim中使用系统粘贴板,印象里回复很多,有好几页的回复却没有解决问题,今天实在受不了了又在网上找办法,竟意外地找到 了,贴出来分享一下。

如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset(粘贴)就可以了,下面讲一下vim的粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。
vim帮助文档里与粘贴板有关的内容如下:

  1. vim有12个粘贴板,分别是0、1、2、...、9、a、“、+;用:reg命令可以查看各个粘贴板里的内容。在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容;
  2. 要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny(注意带引号)完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下:
    • “号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容;
    • +号粘贴板是系统粘贴板,用"+y将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制vim中,需要在正常模式下按"+p;
  3. 要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按"Np,其中N为粘贴板号,如上所述,可以按"5p将5号粘贴板里的内容粘贴进来,也可以按"+p将系统全局粘贴板里的内容粘贴进来。

注意:在我这里,只有vim.gtk或vim.gnome才能使用系统全局粘贴板,默认的vim.basic看不到+号寄存器。安装vim.gnome使用apt-get install vim-gnome,然后vim自动会链接到vim.gnome。

下面是vim复制粘贴的基本命令:
yy复制游标所在行整行。或大写一个Y。
2yy或y2y复制两行。 ㄟ ,请举一反三好不好! :-)
y^复制至行首,或y0。不含游标所在处字元。
y$复制至行尾。含游标所在处字元。
yw复制一个word。
y2w复制两个字(单词)。
yG复制至档尾。
y1G复制至档首。
p小写p代表贴至游标后(下)。
P大写P代表贴至游标前(上)。

复制单个字符
首选进入正常模式(按ESC就行)
然后按v(指定粘贴板为"1v 引号不能少),进入visual方式,然后就可以移动方向键选中文本,然后按y,就拷贝完成,
如果你要从光标处开始复制 4 个字符,可以按 4yl (复制光标后的)("14yl)("110yl 后面10个字符),4yh(复制光标前的) ,就复制了4个字符到缓冲区中了,

按下来就可以用 p (指定粘贴板为"1v 引号不能少)命令随便粘贴了(1为指下粘贴板名)

gg 跳到首行
v visual模式
G 跳到末行

复制也有ggyG一说。

复制到外部程序用ggVG”+y ,或者用鼠标.. [注意这里vim要安装full版本的]

配置vim
注:只对各个用户在自己的当前目录下的.vimrc修改的话,修改内容只对本用户有效,要想全部有效,可以修改/etc/vim/vimrc.
1.apt-get install vim-full
2.设置/etc/vim/vimrc加上下面语句:
“语法高亮度显示
syntax on
“去掉有关vi一致性模式,避免以前版本的一些bug和局限
set nocompatible
“显示行号
set number
“检测文件的类型
filetype on
“记录历史的行数
set history=1000
“背景使用黑色
set background=dark
“vim使用自动对起,也就是把当前行的对起格式应用到下一行
set autoindent
“依据上面的对起格式,智能的选择对起方式,对于类似C语言编
set smartindent
“设置Windows风格的C/C++自动缩进,第一行设置tab键为4个空格,第二行设置当行之间交错时使用4个空格
set tabstop=4
set shiftwidth=4
“设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号
set showmatch
“去除vim的GUI版本中的toolbar
set guioptions-=T
“在编辑过程中,在右下角显示光标位置的状态行
set ruler
“默认情况下,寻找匹配是高亮度显示的,该设置关闭高亮显示
set nohls
“使用此设置会快速找到答案,当你找要匹配的单词时,别忘记回车
set incsearch
“如果没有下列行,加上吧
if &term==”xterm”
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif
系统的一些设置(包括终端下的颜色,ls命令,vi等)
注:只对各个用户在自己的当前目录下的.vimrc修改的话,修改内容只对本用户有效,要想全部有效,可以修改/etc/bash.bashrc
使用alias命令修改之
将其中的与颜色有关的设置改为:
# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ] && [ -x /usr/bin/dircolors ]; then
eval “`dircolors -b`”
alias ls=’ls –color=auto’
alias vi=’vim’
alias ll=’ls -l –color=auto’
alias dir=’ls –color=auto –format=vertical’
alias vdir=’ls –color=auto –format=long’

alias grep=’grep –color=auto’
alias fgrep=’fgrep –color=auto’
alias egrep=’egrep –color=auto’
fi
增加命令:
# some more ls aliases
alias ll=’ls -l’
alias la=’ls -A’
alias l=’ls -CF’

vi(m)用法
vi 是 Linux/Unix 世界里极为普遍的全屏幕文本编辑器,
几乎可以说任何一台 Linux/Unix 机器都会提供这个软件。
vi 有三种状态,即编辑方式、插入方式和命令方式。
在命令方式下,所有命令都要以:开始,所键入的字符系统均作命令来处理,
如:q 代表退出,:w 表示存盘。
当你进入vi 时,会首先进入命令方式(同时也是编辑方式)。
按下I就进入插入方式,用户输入的可视字符都添加到文件中,显示在屏幕上。
按下ESC就可以回到命令状态(同时也是编辑方式)。
编辑方式和命令方式类似,都是要输入命令,
但它的命令不要以:开始,它直接接受键盘输入的单字符或组合字符命令,
例如直接按下u 就表示取消上一次对文件的修改,相当于WINDOWS 下的Undo 操作。
编译方式下有一些命令是要以/开始的,
例如查找字符串就是:/string 则在文件中匹配查找string 字符串。
在编辑模式下按下:就进入命令方式。
基本命令解释:
1.光标命令
k、j、h、l——上、下、左、右光标移动命令。
虽然您可以在Linux 中使用键盘右边的4 个光标键,
但是记住这4 个命令还是非常有用的。这4 个键正是右手在键盘上放置的基本位置。
nG——跳转命令。n 为行数,该命令立即使光标跳到指定行。
Ctrl+G——光标所在位置的行数和列数报告。
w、b——使光标向前或向后跳过一个单词。
2.编辑命令
i、a、r——在光标的前、后以及所在处插入字符命令(i=insert、a=append、r=replace)。
cw 、dw—— 改变( 置换)/删除光标所在处的单词的命令 (c=change 、d=delete)。
x、d$、dd——删除一个字符、删除光标所在处到行尾的所有字符以及删除整行的命令。
3.查找命令
—- /string、?string——从光标所在处向后或向前查找相应的字符串的命令。
4.拷贝复制命令
—- yy、p——拷贝一行到剪贴板或取出剪贴板中内容的命令。
常用操作:
无论是开启新档或修改旧文件,都可以使用vi,所需指令为:
$ vi filemane
如果文件是新的,就会在荧幕底部看到一个信息,告诉用户正在创建新文件。
如果文件早已存在,vi 则会显示文件的首廿四行, 用户可再用光标(cursor)上下移动。


上面是一个经vi 开启的模拟文件,一行开始处的波折号(~)表示文件的结尾。
—指令i 在光标处插入正文
—指令I 在一行开始处插入正文
—指令a 在光标後追加正文
—指令A 在行尾追加正文
—指令o 在光标下面新开一行
—指令O 在光标上面新开一行
在插入方式下,不能打入指令,必需先按〈Esc〉键,返回命令方式。
假若户不知身处何态,也可以按〈Esc〉键,不管处於何态,都会返回命令方式。
在修改文件时,如何存档及退出指定文件都非常重要。在vi 内,行使存档或退出的指令时,
要先按冒号(:),改变为命令方式,用户就可以看见在荧幕左下方,出现冒号(:),
显示vi 已经改为指 令态,可以进行存档或退出等工作。
:q!放弃任何改动而退出vi,也就是强行退出
:w 存档
:w! 对于只读文件强行存档
:wq 存档并退出vi
:x 与wq 的工作一样
:zz 与wq 的工作一样删除正文
删除或修改正文都是利用编辑方式,故此,下面所提及的指令只需在编辑方式下,
直接键入指令即行。
—x 删除光标处字符(Character)
—nx 删除光标处後n 个字符
—nX 删除光标处前n 个字符
—ndw 删除光标处下n 个单词(word)
—dd 删除整行
—d$或D 删除由光标至该行最末
—u 恢复前一次所做的删除
当使用vi 修改正文,加减字符时,就会采用另一组在编辑方式下操作的指令。
— r char 由char 代替光标处的字符
—Rtext〈Esc〉由text 代替光标处的字符
—cwtext〈Esc〉由text 取代光标处的单词
—Ctext〈Esc〉由text 取代光标处至该行结尾处
—cc 使整行空白,但保留光标位置,让你开始打入
—如删除指令一样,在指令前打入的数,表示执行该指令多少次。

要检索文件,必需在编辑方式下进行。
—/str〈Return〉向前搜寻str 直至文件结尾处
—?str〈Return〉往後搜寻str 直至文件开首处
—n 同一方向上重复检索
—N 相反方向上重复检索
—vi 缠绕整个文件,不断检索,直至找到与模式相匹配的下一个出现。
全程替换命令:
:%s/string1/string2/g 在整个文件中替换“string1”成“string2”。
如果要替换文件中的路径:
使用命令“:%s#/usr/bin#/bin#g”可以把文件中所有路径/usr/bin 换成/bin。
也可以使用命令“:%s/\/usr\/bin/\/bin/g”实现,其中“\”是转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。

同时编辑2 个文件,拷贝一个文件中的文本并粘贴到另一个文件中:
命令如下:
—- vi file1 file2
—- yy 在文件1 的光标处拷贝所在行
—- :n 切换到文件2 (n=next) 或者按ctrl+ww,就在两个文件间切换。
—- p 在文件2 的光标所在处粘贴所拷贝的行
—- :n 切换回文件1 (Ctrl +WW 也可实现切换)

将文件中的某一部分修改保存到临时文件,
例如仅仅把第20~59 行之间的内容存盘成文件/tmp/1,我们可以键入如下命令。
—- vi file
—- :20,59w /tmp/1

如果要在 vi 执行期间,转到shell 执行,使用惊叹号(!)执行系统指令,
例如在vi 期间,列出当前目录内容,可以键入 :
:!ls
另一方面,用户可以在主目录中创建.exrc 环境文件,用set 打入选项,
每次调用vi 时,就会读入.exrc 中的指令与设置。下面是.exrc 环境文件的实例:
set wrapmarging=8
set showmode
set autoindent

vim复制、粘贴以及配置总结相关推荐

  1. vim复制粘贴的命令

    from : http://home.lupaworld.com/home-space-uid-24161-do-blog-id-235666.html vim中无法使用ctrl+c ctrl+v进行 ...

  2. vim复制粘贴不错乱格式方法

    vim复制粘贴不错乱格式 运行如下命令,进入 paste 模式: set paste 进入 paste 模式后,按 i 键进入插入模式,然后再粘帖 粘帖完成后按 进入普通模式结束 paste 模式

  3. linux vim 复制一个单词,Vim复制粘贴与寄存器

    Vim复制粘贴与寄存器 在Vim中的复制,删除,替换等操作的临时内容,都会存储在寄存器中 1.无名寄存器("") 两个双引号,Vim中叫做无名寄存器.x,s,d,c,y等操作,如果 ...

  4. Vim 复制粘贴探秘 ----vim 粘贴 取消缩进zz

    Vim 复制粘贴探秘 Vim 作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情.每当学会了vim的一个新功能,就会很大地提高工作效率.有人使用vim几 十年,还没有完全掌握vi ...

  5. vim 复制粘贴 详解

    vim 复制粘贴 详解 vim 复制粘贴 详解_pope_百度空间 vim 复制粘贴 详解 正在学习使用vim,前一阵想学linux,然后突然发现vim是个好东西,学习使用,今天发现,无法使用ctrl ...

  6. vim复制粘贴_打造一款高逼格的Vim神器

    Vim 是一个上古神器,本篇文章主要持续总结使用 Vim 的过程中不得不了解的一些指令和注意事项,以及持续分享一个开发者不得不安装的一些插件,而关于 Vim 的简介,主题的选择,以及为何使用 vim- ...

  7. gvim 命令行粘贴_vi/vim复制粘贴命令

    1. 选定文本块.使用v进入可视模式,移动光标键选定内容. 2.复制的命令是y,即yank(提起) ,常用的命令如下: y      在使用v模式选定了某一块的时候,复制选定块到缓冲区用: yy    ...

  8. linux中vi模式剪切,Vim 复制粘贴和剪切

    用Vim这么久了,始终也不知道怎么在Vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用Vim打开编辑,真的不爽:上次论坛上有人问到了怎么在Vim中使用系 ...

  9. linux vim yny复制粘贴,vi/vim复制粘贴命令

    1. 选定文本块.使用v进入可视模式,移动光标键选定内容. 2.复制的命令是y,即yank(提起) ,常用的命令如下: y      在使用v模式选定了某一块的时候,复制选定块到缓冲区用: yy    ...

  10. vim复制粘贴(从系统粘贴到vim中,以及从vim中粘贴到系统中)

    vim与系统剪切板(将vim的内容复制到系统剪切板.或将系统剪切板内容复制到vim中) vim插件检查 要完成vim中的内容复制到系统剪切板,需要vim支持 +clipboard,检查的方法(ubun ...

最新文章

  1. 2019年,为什么Web前端工程师薪资越来越高?
  2. my wordpress
  3. Java黑皮书课后题第1章:1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里。编写一个程序显示以每小时为多少千米为单位的平均速度值(1英里等于1.6千米)
  4. PaaS云计算平台服务商大集合
  5. PID算法搞不懂?看这篇文章。
  6. java软件工程师工作业绩_嵌入式软件工程师-简历范文,【工作经历+项目经验+自我评价】怎么写...
  7. HOG特征提取算法解析
  8. iOS开发——策略模式
  9. NPAPI最简单的代码
  10. Windows 7安装 Visual Studio 2010之大战三大回合
  11. ubuntu 上安装Nginx1.9.*
  12. navicat中文破解
  13. 计算机网络 以太网 和令牌环网
  14. MySQL基础知识思维导图大纲
  15. ScreenToClient GetClientRect
  16. 山东理工大学acm非专业程序设计基础答案
  17. 物联网终端安全系列(之二) -- 物联网终端安全需求分析
  18. 王垠四十行代码mark
  19. elementUI表格合并行数据
  20. ios 出现log不打印 was compiled with optimization - stepping may behave oddly; variables may not be availa

热门文章

  1. 删除 python print()输出的字符里的空格
  2. Python - 删除print()中的空格
  3. 基于一维卷积神经网络的滚动轴承故障识别
  4. Android Material Design 之 CardView卡片式布局
  5. D. Sonya and Matrix
  6. SOA面向服务体系的架构
  7. python邮件管理
  8. 163邮箱注册,163邮箱申请方法
  9. 【论文阅读】Misshapen Pelvis Landmark Detection WithLocal-Global Feature Learning for DiagnosingDevelop
  10. python更复杂的输出格式