Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将所选文本追加或前置到Vim中的文件中_Vim_Save_Backup_Selection - Fatal编程技术网

将所选文本追加或前置到Vim中的文件中

将所选文本追加或前置到Vim中的文件中,vim,save,backup,selection,Vim,Save,Backup,Selection,在Vim中,是否有方法将所选文本移动到.bak,追加或前置? 如果可能,不应显示备份文件 我设想工作流程是: 选择一些文本 类型:sbak 所选内容将保存到.bak 那怎么办 五 某些移动命令/甚至搜索以选择文本 :”您可以通过三个步骤完成: 键入Shift vj…j以选择一些行 键入:'您可以使用以下命令将vim选择的文本写入文件。 例如,您转到第20行,然后将其标记为ma,然后转到第30行,将其标记为mb,然后将第20到30行复制到filename.dat:'a,'b w filename

在Vim中,是否有方法将所选文本移动到
.bak
,追加或前置? 如果可能,不应显示备份文件

我设想工作流程是:

  • 选择一些文本
  • 类型
    :sbak
  • 所选内容将保存到
    .bak
  • 那怎么办

  • 某些移动命令/甚至搜索以选择文本

  • :”您可以通过三个步骤完成:

    • 键入Shift vj…j以选择一些行

    • 键入
      :'您可以使用以下命令将vim选择的文本写入文件。

      例如,您转到第20行,然后将其标记为ma,然后转到第30行,将其标记为mb,然后将第20到30行复制到filename.dat
      :'a,'b w filename.dat

      :'a,'b w filename.dat
      将标记a到标记b的行写入文件filename.dat

      :'a,'bw!filename.dat
      用标记a到标记b的行替换现有文件filename.dat


      :'a,'b w>>filename.dat
      要将标记a到标记b的行附加到文件filename.dat

      中,现在进一步的步骤:1。自动使用.bak作为bak文件名2。不附加前缀。thx.use
      expand('%:t')
      获取当前文件名与往常一样,您忘记了
      fnameescape()
      a:filename
      。在
      >
      之后省略文件名将附加到当前文件。之后使用
      e:
      刷新缓冲区并查看附加行。
      map <F2> :'<,'> w! >> /YOUR/SELECTIONFILE<cr>:'<,'>d<cr>
      
      com! -nargs=1 -range Sbak call MoveSelectedLinesToFile(<f-args>)
      fun! MoveSelectedLinesToFile(filename)
          exec "'<,'>w! >>" . a:filename
          norm gvd
      endfunc