V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
aruisi
V2EX  ›  Vim

请问 vi 编辑器中如何将内容全选并复制到外部呢?

  •  
  •   aruisi · 2015-01-09 21:29:05 +08:00 · 29938 次点击
    这是一个创建于 3391 天前的主题,其中的信息可能已经有所发展或是发生改变。
    少量内容可以用鼠标直接选中粘贴到notepad+等软件中,但如果是数万行内容该如何复制到外部呢?网上看了下好多都说要同时按"+y可我笔记本键盘,没法同时按"+y啊怎么办?
    22 条回复    2018-07-04 10:39:29 +08:00
    nicai000
        1
    nicai000  
       2015-01-09 21:31:21 +08:00
    按键序列, 不是同时...
    ooxxcc
        2
    ooxxcc  
       2015-01-09 21:31:35 +08:00
    是按顺序按……
    aruisi
        3
    aruisi  
    OP
       2015-01-09 21:52:47 +08:00
    @nicai000
    @ooxxcc 按了,没复制过来啊,怎么办。按:reg查看我这剪切板里没有:+这个啊。只有
    ""
    "0
    ":
    :%
    lusyoe
        4
    lusyoe  
       2015-01-09 21:54:20 +08:00 via Android
    刚学vim,在vimtutor中看到可以这样,先到要开始复制的位置按v进入可视模式,在按G到文件末尾,或跳到你要复制结束的那一行,再按 : 出现:'<,'>符号,再按w 空格 你要保存的文件名 回车就可以了。。提取到另一个文件,可以在另一个文件要粘贴的位置,按 :r 空格 先前临时保存的文件名. 回车即可
    vinceguo
        5
    vinceguo  
       2015-01-09 21:57:19 +08:00   ❤️ 1
    文件这么大,为啥要去用vi打开然后复制粘贴呢?直接用sed或者awk处理一下,把要的行挑出来不是更好?楼主看来是刚用linux,就用sed举两个栗子吧
    把ex11.py这个文件的第1行到第4行打印出来:sed -n '1, 4 p' ex11.py
    同上面,要把结果存到文件holy.shit文件里:sed -n '1, 4 p' ex11.py > holy.shit

    awk忘了,懒得去翻文档了(摊手)
    RockiDog
        6
    RockiDog  
       2015-01-09 22:02:24 +08:00
    我在 ~/.vimrc 中添加了这两行
    vnoremap <C-c> "+y
    nnoremap <C-v> "+p
    然后就可以按v在visual模式下用光标选中内容 ctrl+c 复制到系统剪切版了。。。
    粘贴也可以在normal下按 ctrl+v 完成
    aszxqw
        7
    aszxqw  
       2015-01-09 22:05:38 +08:00
    经典问题又粗现了。
    2owe
        8
    2owe  
       2015-01-09 22:09:10 +08:00
    win 程序员可真难养活啊,不能手动复制文本就想想非 GUI 解决办法呗。

    服务器上作文本切割,将需要的文本传到本地,ftp、sz、scp,甚至 python -m SimpleHTTPServer

    good luck
    regex
        9
    regex  
       2015-01-09 22:29:42 +08:00
    set clipboard=unnamed

    话说"+y真的不行吗?
    Yancey
        10
    Yancey  
       2015-01-09 22:35:46 +08:00 via Android
    linux下。安装了gvim(vim-gnome)才会出现"+寄存器
    Tink
        11
    Tink  
       2015-01-09 22:37:58 +08:00
    首先楼主的操作有问题,其次可以试试v模式
    jiang42
        12
    jiang42  
       2015-01-09 22:51:00 +08:00
    " yanks go on clipboard instead
    set clipboard+=unnamed

    正解
    onemoo
        13
    onemoo  
       2015-01-09 22:51:14 +08:00
    首先执行 vim --version
    在列出来的feature中 xterm_clipboard 前面得有 ‘+’ 加号,才具有这个功能。
    或者使用gui版本的vim。

    其次,就像上面几楼说的,还有很多办法可以完成这个操作。
    caixiexin
        14
    caixiexin  
       2015-01-09 22:52:28 +08:00
    好像要先安装gvim,
    然后是选中后按顺序按这三个键 " + y 选中内容就到粘帖版了
    我后来直接把这个组合键映射成ctrl+c了 。。
    leeyiw
        15
    leeyiw  
       2015-01-10 00:41:13 +08:00
    vim-gnome~~
    binux
        16
    binux  
       2015-01-10 00:53:12 +08:00
    我觉得 LZ 说的 VI 根本就不在同一台机器上,比如 ssh 连接的一台服务器上的 vi
    KentY
        17
    KentY  
       2015-01-10 01:46:02 +08:00 via iPhone
    @RockiDog 那你需要ctrl-v时怎么办?还是说你从来不用c-v?
    RockiDog
        18
    RockiDog  
       2015-01-10 10:13:23 +08:00
    @KentY 映射成其他的 不过用的也很少
    MarioLuisGarcia
        19
    MarioLuisGarcia  
       2015-01-10 10:47:37 +08:00
    @binux 这种时候应该文件传输啊。实在不行装个可全选的文本编辑器。用那个打开
    anytk
        20
    anytk  
       2015-01-14 16:53:34 +08:00
    是 vi 不是 vim 吗。。。。。。
    daben1990
        21
    daben1990  
       2015-04-14 14:43:24 +08:00
    我是用vim的插件,Tmux Yank,可以把选中的内容,剪贴到系统的剪贴板,但是有个缺点,在vi打开文件里,只能选中当前屏幕的内容,超出屏幕的内容,不能一次选中
    firebook
        22
    firebook  
       2018-07-04 10:39:29 +08:00
    那些说服务器上下载回来的,就没用过堡垒机是吧,服务器是没法随便上传下载的。还是针对问题本身去回答好吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5693 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 06:31 · PVG 14:31 · LAX 23:31 · JFK 02:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.