小白基础待整理
vim基本命令
gUU (变大写)
guu (变小写)
ctrl+r 反撤销
ctrl+r 反撤销
按u是撤销 (ctrl+z)
在vim file1之后, 可 :sp file2添加窗口(上下,:split file2) 或者 :vs file2(左右 :vsplit file2) 或者:e file2(单纯打开文件)
在 vim file1 file2之后:
:n 下一个文件 :N上一个文件
ctrl+6下一个文件
:bn下一个文件
:bp上一个文件 (当前窗格中切换文件)
或者:vs分窗口
分窗口之后:
ctrl+w+w 切换到下一个窗格
ctrl+w+h/j/k/l
第二种: 直接 vim -o file1 file2 (上下)
删除
x 删除光标所在处字符
X 删除光标所在前字符
dw 删除到下一个单词开头
de 删除到本单词末尾
dE 删除到本单词末尾包括标点在内
db 删除到前一个单词
dB 删除到前一个单词包括标点在内
dd 删除行
d$ / D 删除光标位置到本行结尾
d0 删除光标位置到本行开头
3dd 删除从光标开始三行
替换:http://www.cnblogs.com/jianyungsun/archive/2011/03/20/1989276.html
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
:n,$s/vivian/sky/g 替换第n行开始到最后一行中每一行所有vivian为sky. n 为数字,若n为.,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
1: 快速到最后一行:
shift + G
2:快速到第一行: 1 + shift +G
3: 快速到第40 行: 40 + shift + G
hjkl 左下上右 w是下一个单词,b是上一个单词
13h
行:0行首 $行尾 0 $ G gg都可以直接移动
文件 G 1G==gg
HML G gg 页面的就是ctrl f+d(floor and down?)、u+b(up and before?)、 e、y
a是字符后面,i是插入到字符前面
o光标下方插入一行,O光标上方插入一行
/和?是正则搜索 n和N移动 :nohlsearch 停止搜索显示 :nohl
zz zt 屏幕移动
显示行号
$vi ~/.vimrc
set number
vim的分屏功能
总结起来,基本都是ctrl+w然后加上某一个按键字母,触发一个功能。
(1)在shell里打开几个文件并且分屏:
vim -On file1 file2 …
vim -on file1 file2 …
大O表示垂直分割(vertical),小o表示水平分割(默认horizontal),后面的n表示分几个屏,实际上我觉得不用写,默认按后面要分割的文件数来决定分几个屏。
(2)在vim里打开一个分屏:
创建空白分屏:
:new
打开任意文件:
:vsplit(:vsp) filename
:sp(split) filename
打开当前文件:
ctrl+w 和 s(split)
ctrl+w 和 v(vsplit)
(3)关闭一个分屏:
:only 或者 ctrl+w 和 o取消其它分屏,只保留当前分屏
ctrl+w 和 c(close)
只剩最后一个分屏以后推出:
ctrl+w 和 q(quit)
(4)移动光标,也就是切换分屏;也可以移动分屏,比如将左分屏移动到右边。
ctrl+w 和 w(各种切换,只有两个分屏的时候还是比较方便的)
ctrl+w 和 h(H) 左
ctrl+w 和 j(J) 下
ctrl+w 和 k(K) 上
ctrl+w 和 l(L) 右
(5)最后就是改变分屏尺寸的操作了。
ctrl+w 和 < 左
ctrl+w 和 > 右
ctrl+w 和 + 上
ctrl+w 和 - 下
ctrl+w 和 = 恢复均等
iI:插入
sS:删除字符然后插入
aA:在当前文本后追加
c移动命令:删除移动命令表示的文本后输入
C:删除到行尾输入
以上命令都可以进入插入模式
git 基础命令
git fetch origin master:tmp
git diff tmp
git merge tmp
=git pull origin master:localbranch
git fetch origin master
git log -p master…origin/master
git merge origin/master
git push
git push origin localref:remoteref
git remote -v
git remote show origin
git rev-parse head
//子模组
git submodule add 子模组仓库地址 路径
git clone --recursive
git config --list
git commit …
git pull
conflict: 手动修改或者git gui修改
git commit …
git push/ 前面可以再pull一下
git add -i 交互操作界面
git add -A
git commit -a //add文件都加入commit,提交Changes but not updated
git commit -m “sda”
git commit -a -m “commit info”
git commit --amend
http://www.cnblogs.com/eddy-he/archive/2012/03/22/git_commit.html
git stash
git branch -a | git branch -r
git init
touch README
git add README
git commit -m ‘first commit’
git remote add origin git@github.com:youusername/test.git
git push -u origin master
http://www.cnblogs.com/eddy-he/archive/2012/03/22/git_commit.html
maybe better:http://www.runoob.com/w3cnote/git-gui-window.html
本地有修改和提交,如果想放弃这些修改和提交 可以使用如下命令强制用远程的库更新:
git fetch --all
git reset --hard origin/master
git fetch --all 只是下载远程的库的内容,不做任何的合并
git reset --hard origin/master 把HEAD指向刚刚下载的最新的版本
git fetch origin 远程分支
git log -p 4a66cec14c26aafdbsuduasd -1
git log --author=qwhe -2
git log --name-only -2
git log --stat -2
git log -p -2
git log | grep ‘qwhe’
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改
别人删除远程分支后
运行 git branch -a 也不能看出这个branch被删除了
查看远程的状态: git remote show origin
git remote prune origin 可以将其从本地版本库中去除
fetch之后删除掉没有与远程分支对应的本地分支: git fetch -p
删除 untracked files
git clean -f
连 untracked 的目录也一起删掉
git clean -fd
查看文件的每一行是哪个提交最后修改的
查看文件的每一个详细的历史修改,如果没有-p选项,只显示提交记录
git log -p filename
git blame filename
git pull --rebase origin master
强制覆盖:git push --force origin master:h00422038
git blame -L 58,100 KeyboardActivity.java
git log --oneline --graph --decorate
可以使用git reflog show或git log -g命令来看到所有的操作日志
ssh -p 29418 h00422038@cloudos-review.huawei.com gerrit version
git cherry-pick commit1 commit2 commit3
git checkout -b branch3 1a222c3
git checkout -b 本地分支名x origin/远程分支名x
git fetch origin 远程分支名x
git remote update origin --prune
git stash
git stash save ‘msg’
git stash pop
git stash apply stash@{0}
git stash drop stash@{0}
git stash clear
git stash pop --index 同时也恢复暂存区
git stash show
git stash show -p stash@{1}
git stash list
查看哪些分支需要清理
git remote prune origin --dry-run
删除本地版本库上那些失效的远程追踪分支
git remote prune origin
git clean -f
git remote update --prune的作用?
查看某个提交时指定文件的具体内容
git show 9efcb7c:index.html
git branch --set-upstream-to=origin/foo
git push origin head:refs/for/
git checkout -b 本地分支名x origin/远程分支名x
git checkout -b master_6.5