Bootstrap

简单记录Git和vim使用

git

基本教程:Git入门学习

此外从中摘录些常用操作

在这里插入图片描述

git分支中常用指令:

列出所有本地分支

git branch

列出所有远程分支

git branch -r

新建一个分支,但依然停留在当前分支

git branch [branch-name]

新建一个分支,并切换到该分支

git checkout -b [branch]

切换分支(本地分支)

git checkout [branch]

合并指定分支到当前分支

$ git merge [branch]

删除分支

$ git branch -d [branch-name]

删除远程分支

$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

遇到过的问题

Q1

$ git add .

warning: in the working copy of 'branch1.txt', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'convmixer.py', LF will be replaced by CRLF the next time Git touches it

换行(LF)转换成回车换行(CRLF),解决方法
git提示“warning: LF will be replaced by CRLF”的解决办法

Q2

$ git push origin newbranch1

warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcm/tlsverify for more information.
warning: could not find UI helper 'GitHub.UI'

然后在此处停滞

解决此警告的方法
git config --global http.sslVerify true
反向命令
git config --global http.sslVerify false

Q3

$ git push origin newbranch1
fatal: unable to access 'https://github.com/XXX/gitstudy.git/': OpenSSL SSL_read: Connection was reset, errno 10054

理由:
因为git在拉取或者提交项目时,中间会有git的http和https代理,但是我们本地环境本身就有SSL协议了,所以取消git的https代理即可,不行再取消http的代理。

后续
原因还有一个,当前代理网速过慢,所以偶尔会成功,偶尔失败。

//取消http代理
git config --global --unset http.proxy
//取消https代理 
git config --global --unset https.proxy

errno 10054问题仍然存在

打开科学上网后问题变为

$ git push origin newbranch1
fatal: unable to access 'https://github.com/xxx/gitstudy.git/': Failed to connect to github.com port 443 after 21077 ms: Couldn't connect to server

Q4

$ git push origin newbranch1
warning: could not find UI helper 'GitHub.UI'

GIT clone 后could not find UI helper,且没有下条提示了怎么办?
新版本version 2.39的bug导致无法显示登录UI界面,请尝试旧版本如2.38.X。

我的版本

$ git -v
git version 2.39.0.windows.1

vim

基本教程:精通 VIM ,此文就够了

此外从中摘录些常用操作

四种模式

正常模式:主要进行的操作有光标的移动,复制文本,删除文本,黏贴文本等。(默认模式)

插入模式:正常模式下按下i,进入编辑状态,通过键盘输入内容。按下ESC回归正常模式。(i是在光标所在的字符之前插入需要录入的文本,此外还有i,I,a,A,o,O,s,S,具体看原文精通 VIM ,此文就够了

命令模式:正常模式中,按下:(冒号)键或者/ (斜杠),会进入命令模式。可以执行一些输入并执行一些 VIM 或插件提供的指令,包括设置环境、文件操作、调用某个功能等等。

VIM 可视化模式(Visual-mode):v,V,Ctrl+v ,选择文本的时候有一种鼠标选择的即视感。

(进入命令模式或者可视模式没有执行任何操作,按两下 ESC回复正常模式)

翻页操作

ctrl+f 查看下一页内容

ctrl+b 查看上一页内容

撤销操作和恢复

u 撤销刚才的操作

ctrl + r 恢复撤销操作

光标移动

h,j,k,l 这几个按键主要是用来快速移动光标的,h 是向左移动光标,l 是向右移动光标,j 是向下移动光标,k 是向上移动光标,h , j , k ,l 在主键盘区完全可以取代键盘上的 ↑ ,↓ ,← , → 的功能。

Vim 退出

:w 保存不退出
:w! 强制保存不退出
:w file 保存当前的文件修改到 file 文件当中
:q! 退出不保存
:qa! 退出所有文件且不保存
:wq 退出并保存修改
(另有其他)

Vim的复制,黏贴 ,删除(yank paste delete)

为什么在 vi 的世界, 拷贝都使用 yank 这个词, 而不是 copy?

dw 删除一个单词
dnw 删除 n 个单词
dd 删除一整行
ndd 删除光标处开始的 n 行
dH 删除屏幕显示的第一行文本到光标所在的行
dG 删除光标所在行到文本的结束

yw 复制一个单词,
ynw 复制n 个单词
yy 复制一行
nyy 复制光标处开始的 n 行
yH 复制屏幕显示的第一行文本到光标所在的行
yG 复制光标所在行到文本的结束

p 在光标后开始黏贴
P 大写的 P 光标前开始粘贴
当执行完复制或者黏贴的命令以后,VIM 会把文本寄存起来
(更多见原文)

分屏

左右分屏:

vim -On file1 file2 … filen

Ctrl + w h
将当前光标定位到左边的屏幕

Ctrl + w l

将当前的光标定位到右边的屏幕

Ctrl + w H

将当前的分屏移动到左边

Ctrl + w L

将当前的分屏移动到右边

上下分屏:

vim -on file1 file2 … filen

Ctrl + w j

将当前的光标移动到下面的分屏

Ctrl + w k

将当前光标移动到上面的分屏

Ctrl + w J

将当前的分屏移动到下面的分屏

Ctrl + w K

将当前的分屏移动到上面的分屏

关闭分屏

Ctrl + w c

上面这个命令是关闭当前的分屏

Ctrl + w q

上面的这个命令也是关闭当前的分屏,如果是最后一个分屏将会退出 VIM 。

注意:以上内容来源精通 VIM ,此文就够了,为便于查阅摘录于此,想要详细内容请看原文

;