zoukankan      html  css  js  c++  java
  • vim简单的实用总结

    vim简单的实用总结

    介绍vim常用的四种模式:一般模式,编辑模式,指令列命令模式与可视模式。
    一,一般模式
       用vim filename打开文件后直接进入的就是一般模式,在这个模式下可以用hjkl移动光标,这四个字母都是右手控制的,h往左,j往下(食指), k往上(中指),l往右,助记中指高食指低所以按k光标是往高处走,按j光标往下面走。

       在一般模式下最常用的是光标定位,比如光标移动到第n行,则按nG,光标移动到最后一行直接按G就行。光标定位到该行末尾按$,光标移动到该行最前面按数字0,如果按数字n再按空格则光标向后移动n个字符的距离,如果数字n再按回车则光标相下移动n行.H将光标移动到该屏幕最上方第一个字符,M移动到该屏中央的第一个字符,L移动到该屏最下方那行的第一个字符.

       在一般模式下经常处理行操作,比如从光标所在行开始,nyy表示复制n行,p粘贴在光标之后,大P粘贴在光标之前,ndd删除n行。其实记住y表示复制d表示删除,然后记下面的操作就很简单了,比如y1G表示复制光标所在行到第一行的所有数据,yG复制光标所在行到最后一行的所有数据,这样大家就知道ynG是指复制到哪一行的意思了,由于w代表单词或汉字所以ynw就代表从光标所在处开始复制n个单词或复制n个汉字。yn回车直的就是复制下面的n行,yn空格指的就是复制接下来的n个字符。当然还可以复制到该行开始y0,复制到该行结尾y$.删除也是同样的只是将y换成d而已,
      
       在一般模式下经常用的一个撤销是u重做是ctrl加r,如果要把光标所在行的下一行追加成一行,则按j就可以。

    二,插入模式
          就是进入可以编辑的模式,常用的有4个按键可以进入。i,a,o,r大小写都可以,但是进入的位置不同,i是插入到光标所在处之前,a是插入到光标所在处之后,I是插入到这一行的最前面,A是插入到这一行的最后面,(其实a指的是after所以它每次都是在后面插入),o是插入到光标行的下一行,O是插入到光标行的上一行。r是替换光标处的字符(只能替换一个字符),R会一直取代光标所在的文字,直到按下esc为止。esc是从插入模式回到一般默式的键.插入模式就完了。

    三,可视模式
      一般的复制粘贴用可视模式是最直观的也是比刚刚一般模式下复制粘贴更能满足用户感官的。主要有三种复制和删除方式,第一种光标选中多少就可以复制多少,(按字符复制)。第二种总是复制成长方形区域,(也就是按列复制)。第三种是按行复制.

    1,按字符选择
       按下v之后,光标所到之处都会变成白颜色,停止光标移动之后就代表选择完了(光标可以由h,j,k,l控制),然后按y就表示把刚刚选中的白色区域复制下来了,然后到你想粘贴的地方按p或者P就可以粘贴了。如果选择完后不是按y而是按d则会把刚刚选中的白色区域删除。

    2,按列选择
       ctrl+v之后再选择的话就是按照长方形的块选择了,语言不好表述试试一下就明白了,选择完成之后按y或者按d由你决定了。

    3,按行选择
       按V之后就是按行选择,光标所到行都会选中,相当于nyy的作用。

    四,指令列模式
       这个模式下功能最多了基本可以分为:/?这三种命令


       1,"/"和"?"表示的是搜索功能
         /后面跟要查找的字符串然后按回车键,表示从光标处向后搜索该字符串,如果要继续向后查找下一个就按n表示next,N表示向上搜索下一个;?后面跟要查找的东西,然后回车表示向光标之前查找该字符串,不过此时n表示向前查找的下一个,而N表示向后搜寻的下一个,也就是说n是跟/和?的方向是一样的,而N是跟/和?的方向相反。只需要掌握任意一种搜索法即可。


       2,":"后面可以跟的命令就太多了。介绍三种第一种替换功能,第二种窗口分割功能,第三种vim设置功能
       (1)替换
       :n1,n2s/word1/word2/g  这个命令表示在第n1行和n2行之间寻找word1然后替换成word2,最后面的g表示行内所以后查到的全部替换,如果g后面再紧接一个c表示每次替换之前系统都会提示你是否要替换。如果一直替换到文件末尾则n2可以用$表示,例如1,$s/hj/houjiao/g表示从第一行到最后一行将hj替换为houjiao,n2也可以用.替换,表示从n1行到当前位置进行查找。
      
       (2)窗口分割
       首先vim可以一次打开多个文件进行编辑,而不是用多次vi打开,因为多个vi打开的文档之间不能直接nyy和p所以,用vim file1 file2 ..就可以一次打开多个文件,在一般模式下输入 :n 表示切换到下一个档案 :N 表示切换到上一个档案进行编辑,用:files 显示这次vi打开的所有文件信息。下面引出多窗口分割,即在打开文件之后再打开多个文件并且显示在同一屏幕中,按不同窗口分割开来,具体的做法是在一般模式下输入:sp [filename] 中括号表示该项可有可无,如果后面不加文件名,表示再新窗口中再打开一个与正在编辑的文件一样的文件,如果加文件名表示在新窗口打开一个新文件。如果想在不同窗口间切换,则按ctrl + w + j切换到下面的窗口或者 ctrl + w +k切换到上面的窗口。这个功能真是强大。跟total command 那个软件都差不多了。
      
      (3)vim设置
         进入vim后如果嫌文档显示界面不友好则可以设置很多东西,比如加行号:set nu可以让你光标定位更直观,加列号:set ruler可以在右下角看到你光标此时在哪一列,又比如:set bg=dark 可以使注释行颜色鲜艳,:set backspace=2可以让你在进入插入模式后能用回格键删东西(设为0和1时不能),又比如:set hlsearch 可以使搜寻时的字符串高亮显示。所有的这些都是可以在/etc/vimrc文件里面改的,但是这个文件里面的是不全的,你要是想看能设置哪些东西在一般模式下:set all 就可以看到关于vim设置的巨多功能。


       (4)再补充一下文件的保存。 ZZ两个大写的Z表示存储后离开与:wq是一样的功能,:w是保存但是不退出,:q是离开vi 这些命令后面如果多加一个!表示强制执行,:w filename 表示将文件另存为。:n1,n2 w filename 表示将n1行到n2的内容保存到filename里面,再补充一点,如果正在vi里面想执行shell命令是不需要:q退出vi后再输入命令的,而是用:!command 就行,比如:! ls /home 就可以在vi中查看 /home 底下输出的档案信息。


       最后补充一点,当远程到服务器然后用vi打开文档时中文可能出现乱码情况这时你:set fileencoding 如果不是utf-8(因为一般设置的encoding都是utf-8的,可以用:set encoding查看)而是ansi1格式那就说明转码错误,你只需要在一般模式下按:edit ++enc=cp936然后回车基即可。

    如果:set fileencoding是utf-8的那很有可能是终端显示的问题,这时你设置:set termeencoding=gbk 即可,这个不是绝对能解决问题的,因为具体与终端显示编码方式,文件内部编码方式和文件转换编码方式和locale编码方式有关,但是以上两种办法是最常见的,可以解决大部分问题。
                                                                                                                                                                   --jimmy_hou

     

    Github上如何给别人贡献代码

     

    本篇博文仅随前篇博文Github简明教程(入门篇),当然我的独立博客也是采用Github搭建,我所介绍的Github正是我搭建博客过程中一点一点学习的过程,如有错误,还请指出,同样大神们可以绕过。

    博客园上文章链接:Github简明教程(入门篇)

    本篇重点介绍Github上如何给别人贡献代码,通过这个过程,也可以知道如果一个项目托管到Github上,团队成员之间合作的流程,给别人贡献代码,特别是一些开源组织,是件光荣的事

    1、搜索你要贡献的代码仓库,在这里我创建了两个帐号,一个主帐号,里面有一个代码仓库mfjc,一个是将要贡献代码的帐号howard5888,搜索代码仓库如下图:2、按下回车后,即会出现搜索到的库,如下图所示3、点击上图中的仓库链接,进入mfjc仓库,点击右边的fork,fork的含义就是创建mfjc项目的副本作为你自已的项目4、fork之后的图如下图所示,从下图可以看出mfjc已经处于自已的github帐号库中,同时也可以发现github还标明了该库的来源,因为只有标明了来源,后面你修改了文件才有提交的路径5、修改或者增加仓库里的文件,可以选择在线修改,在线修改一般适合修改量较少,这里介绍的是采用Git工具,将代码仓库下载到本地,在本地修改之后再上传上去,相关命令如下:

    复制代码
    mkdir tmp #创建tmp目录
    cd tmp #切换到tmp目录
    git init #创建并初始化git库
    #增加远程git仓库
    git remote add origin https://github.com/howard5888/mfjc.git
    #将远程git库下载到本地
    git pull origin master
    复制代码

    6、命令执行完后,可以看看从mfjc下载下来的文件,如下图所示

    7、假设我们修改了README.md文件,在这个文件里面增加了#test#,接下来要做的就是将修改后的代码库上传上去,命令如下:

    1
    2
    3
    4
    5
    6
    #会将当前目录tmp下所有文件都增加到本地库中
    git add .
    #提交更改
    git commit -am 'commit'
    #将库上传到github上
    git push -u origin master

    8、上传完后,再回到github网站上,可以看到README.md文件内容已更改9、最后就是将修改提交给主帐号的原作者,由它来决定是否合并你的修改,操作如下,点击Pull request后,跳转到下一个页面,在下一个页面上点击New pull Request

    10、接下来的界面上显示了修改后的文件与原作者库里的文件有哪些地方不同

    11、然后点击Click to create ....即可跳转到最后一个页面,在最后一个页面上写上自已的提交注释,点击Send Request即可12、主帐号里的源作者即可收到你的提交请求,如果觉的可以的话,就会将你的请求同主干合并

    13、估计还有很多人不知道如何与原作者的项目保持同步,如何保持与原作者同步,原作者估计肯定是一个勤劳的码神,而且又有重多的贡献者,因此与原作者保持同步是很重要的,而且在同步的过程中,你会看到别人每次提交的更改,这也是Github最大的价值之一,保持与原作者同步首先要做的就是重复第9步,之后会跳到如下页面

    14、点击上图中的红色框里,跳转到下一个页面,在下一个页面中,你会看到项目中的每次更新操作,如下图所示:

    15、点击绿色方框里的Create...,进入下一个页写,写上title以及comment,点击Send pull,即可跳转到下一个页面,在下一个页面中间处点击Merge request,即可进行同步

    下一篇将介绍如何利用Github搭建属于自已的博客

    大家可以预览下我的个人博客

    烟雨林个人博客

    本文档最初由markdown编辑生成,预览效果

     
     
    分类: 工具使用
    标签: Github
     
    分类: linux
  • 相关阅读:
    Java 自动装箱与拆箱(Autoboxing and unboxing)【转】
    工厂方法和new
    java线程池【转】
    大型网站架构演化过程
    jsp el表达式
    GC垃圾回收
    mysql语句
    String StringBuilder StringBuffer
    粉丝关注数据库表的设计
    ECharts图表之柱状折线混合图
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3438145.html
Copyright © 2011-2022 走看看