vim常用命令介绍与git

简介:      

对于服务器开发,一般都是通过ssh将本地和服务器端进行指令或者数据互传。面对于没有图形界面的情况下,如果修改程序文件,vim还是比较靠谱的。大的修改在本地,然后上传服务器后再采用vim对程序内容进行小的改动。

     通过在命令行中键入:

vim filename  打开需要修改或者查看的文件,

vim filename +n,定位到第n行,这个+号是实际存在的。比如说vim test.txt +8;进入vim环境后,定位到text文件内容的第八行。

vim filename + 打开文件并定位到最后一行。

vim可分为三种模式:命令模式,输入模式,和末行模式;vim打开文件后进入命令模式。模式之间的转换可用下图表示:

那么这三种模式都有什么功能呢, 对于常用的一些操作,其中:

命令模式:控制整个屏幕光标的移动,对字符或者单行或多行进行删除、复制。撤销上步操作等

输入模式:  或者称为插入模式,只有在这种模式下才能对文本进行新的文字输入,称为新的是因为,在命令模式下,复制的文字在原来的文本中就有,总之,理解什么是输入即可。在这种模式下就跟操作普通文本编辑一样。比如说你可以通过ctr+c复制的文字采用ctr+v的方式粘贴到文本,这个所谓的复制和命令模式下的复制不一样。

末行模式:将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。进入末行模式,光标移动到最下面。

不同模式环境下适用于对文件的不同操作,模式之间的切换在图中已经表示。我们也可以看出,输入模式和末行模式不能相互切换,命令模式是他们之间的桥梁。

vim的命令:

正常模式


esc:切换到正常模式
shift  zz:保存退出(其实就是大写的ZZ操作)
gg:定位到首行
G:定位到尾行 (也可以用shift g 代替)
ngg:定位到第n行
^:定位到行首
$:定位到行尾
yy:复制光标所在行
p:粘贴
nyy:复制光标开始的n行
dd:删除光标所在行,(或者剪切,按p复制)
ndd:删除光标开始的n行
u:撤销操作
ctrl r:反撤销操作

h、j、k、l:对光标进行左、下、上、右各移动一格的操作,也可以用键盘的是四个方向键代替

w:光标跳到下个字的开头

e:光标跳到下个字的字尾

ctrl b:屏幕往"后"移动一页

ctrl f:屏幕往"前"移动一页


插入模式


i:在光标处插入
I:在行首插入
a:在光标下一个字符处插入
A:在行尾插入
o:在光标下一行插入空行
O:在光标上一行插入空行
s:删除光标所在字符并插入
S:删除光标所在行并插入


尾行模式


:w 退出
:q 退出
:wq 保存并退出
:x 保存并退出
:q! 强制退出
:set nu 显示行号
:set nonu 隐藏行号
:n 定位到第n行
/内容 查找指定内容,n下翻,N上翻
:%s/原内容/新内容 使用新内容替换原内容
:m,ns/原内容/新内容 使用新内容替换原内容,替换m到n行

git

使用git进行版本控制,可以使用命令行也可以使用图形界面,常用的图形界面有sourcetree和GitKraKen等,但都大同小异.这里制作简单的常用的git命令和操作名词的一些记录.比较简单,好比在Linux的上命令,常用的也就十多条.足以应对日常开发.

 常用的命令以及介绍:

其命令的本质可以参考这里,解释的非常清楚

图形界面管理软件使用了gitKraken来进行演示

执行如下命令以创建一个本地仓库的克隆版本:
git clone /path/to/repository 
如果是远端服务器上的仓库,可能是这样
git clone username@host:/path/to/repository

创建或者拉取项目到本地,拉取的时候,需要输入用户名和密码,图形软件上会跳出来,为了方便以后不用每次和远端库进行互传时需要输入密码,可以使用ssh进行配置.

你的本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,指向你最近一次提交后的结果。

在当前目录创建一个git代码库:

git init

在已经存在的文件中,改动信息会被git直接监听,并时刻被记录改动的地方,但是创建一个新的项目时,一般会有一个弹窗,问是否加入到git版本控制里面.

git add 只是把文件加到 git 版本控制里,并不等于就被 stash 起来了,git add 和 git stash 没有必然的关系,但是执行 git stash 能正确存储的前提是文件必须在 git 版本控制中才行.

创建新的分支branch:, 切换分支:checkout.

本地提交代码:commit,commit后,即将改动提交到了HEAD上,但是还没有到你的远端仓库

push是将本地改动提交到远端仓库,如果你在本地新增的branch分支在远端没有,会新创建一个.如果存在,则将改动提交远端.

如果push到远端的新分支:

git branch
>>> *master
git push origin master:my_remote_new_branch
#远端即可创建新的分支my_remote_new_branch,提交本地修改

 pull和fetch:

git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决

将远程分支拉到本地:

git fetch origin dev(dev即分支名)

# 加入当前在本地master分支
git fetch origin master_new:master_new 
//在本地新建一个master_new分支,并将远程origin仓库的master_new分支代码下载到本地master_new分支
git merge tmp
//合并master_new分支到本地的master分支
git branch -d master_new
//如果不想保留temp分支 可以用这步删除

假如你在开发新的功能过程中遇到紧急需要处理的事情,例如bug.你需要切换分支.但是当前分支(暂叫开发分支)正在工作区,如果有改动,要么commit,提到新的head上,要么暂存一下.这样才能切换分支.等bug处理完切回开发分支时,是回到开发分支的最新head的节点,想要恢复之前暂存的代码需要pop弹出来.暂存和弹出的命令分别为:

git stash和git stash pop

如果有很多git stash 则在pop后面加上编码就可以了.

git stash ===将写好的文件暂存到缓冲区

git stash pop[编号] == 回复最近的一次改动

以gitKraken说明:

:

走到这里,你可以选择上图最下面的commit,写好commit描述然后提交即可.

如果选择暂存,则需要点击下图的stash:

同样,切换回来分支时,需要点击pop才能恢复修改的内容.

开发中,如果经过测试已经线上部署感觉该版本比较成熟后,一般是要将这次的修改merge到master分支里面.这个一般在远端直接merge.即,推上一个新版本后,在网页端进行merge:

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值