第三课目录

  • vi/vim
    • vi/vim简介
    • vi的模式
    • vi在命令模式下的操作
    • vi在底线命令模式下的操作
  • Visual Studio Code
  • Git
    • git简介
    • 关于git的故事
    • git的使用

vi/vim

vi/vim简介

vim:the ubiquitous text editor
vim是Unix类的必装工具,主要优势在于适用于嵌入式设备,用命令行方式编辑文本,而vi作为vim的简化版本,严格来说,vi才是更单纯的文本编辑器,vim已经拓展成为一种开发工具

vi的模式

vi/vim的模式有三种:命令模式,输入模式,底线命令模式;
1.命令模式:Command mode,刚启动vi/vim时,就进入了命令模式,此时vi只能对输入的命令做出反应;
2.输入模式:Insert mode,在命令模式下,输入i,a,o(不分大小写)均可以进入输入模式,此时才可以进行编辑,如果输入<Esc>,则退出回到命令模式;
3.底线命令模式:Last line mode,在命令模式下,输入冒号字符":"进入底线命令模式,此时,vi可以对一些特殊命令做出反应,如果输入<Esc>,将会退出回到命令模式;


底线命令模式的常用指令:

q!       强制退出,不保存
wq       保存后退出
set nu   显示行号
q        正常退出
w        保存文件  

vi在命令模式下的操作

移动光标:

h 向左 , j 向下 , k 向上 , l 向右
+ 移到下一行 , - 移到上一行
0 移到所在行的开头
$ 移到所在行的末尾
G 移到文件最后一行
gg 移到文件第一行
n<Enter> n为数字,向下移动n行

翻页:

Ctrl+f 向下移动一页
Ctrl+d 向下移动半页
Ctrl+b 向上移动一页
Ctrl+u 向上移动半页

删除:

x 向后删除一个字符
X 向前删除一个字符
dd 删除光标所在行
ndd 删除光标所在行向下n行

复制:

yy 复制光标所在行
nyy 复制光标所在行的向下n行

粘贴:

p 将已复制的数据粘贴到光标下一行
P 将已复制的数据粘贴到光标上一行

其他:

u 复原上一个动作(撤销)
Ctrl+r 重做一遍上一次的动作

vi在底线命令模式下的操作

搜索:

/word

向光标之下寻找word,按n光标移动到下一个word,N则向上搜索;

搜索并替换:

n1,n2s/word1/word2/g

n1,n2为数字,在n1行到n2行之间寻找word1,替换为word2,如果将g写成gc,每次替换时都会询问确认
其他:

w [filename] 保存,另存为,filename是可选参数
r [filename] 将filename的内容追加到当前光标的下一行

Visual Studio Code

Visual Studio Code支持Windows,OSX,Linux,内置JavaSkript,TypeSkript和Node.js支持,插件丰富,可以通过插件支持C++,C#,Python,php;
对于ubuntu,可以先下载"*.deb"文件,再通过apt安装:

sudo apt install "*.deb"

ubuntu上安装Visual Studio Code的界面如下:

Visual Studio Code有四个主要菜单:文件夹,搜索,git(版本控制),调试,插件生态系统

Git

git简介

git是目前世界上最先进的分布式版本控制系统,在git之前,主流的版本控制使用Subversion和Concurrent Version System,但它们是集中式的,即本地从服务器获取到文件,更改后必须提交到同一个服务器

关于git的故事

在2002年以前,Linux内核源码文件是通过diff(对比前后两次代码)的方式发给Linus,再通过Linus本人手动整合代码,Linus本人是Subversion和Concurrent Version System的反对者,因为集中式的版本控制系统访问速度慢,效率低,当时市场上也存在分布式版本控制系统,但都是商用版,与Linux开源精神背道而驰;
一个偶然的机会,商业版本控制系统BitKeeper的初始公司BitMover授权Linux社区免费使用该版本控制系统,但仅仅到2005年,BitMover就要收回使用权,Linus紧急情况下,基于C语言自己写了一个分布式版本控制系统,这个系统就是Git,不到一个月,Linux的源码就迁移到了Git;
2008年,Github网站上线,github为开源项目免费提供git管理和存储,开源逐渐成为大势所趋,2016年BitKeeper也转型开源,至今,众所周知,github已经成为全球最大的男性社交网站

git的使用

1.git初识
首先在机器上安装git:

sudo apt install git

新建一个项目,并用git初始化项目,使项目具有版本控制属性:

mkdir project
cd project
git init

在project下新建文件,可以用add的方式添加到版本库里:

vi main.c
#使用vi对main.c进行编辑
git add main.c

通过git status可以查看版本库的状态,注意main.c只是添加到库中,还未提交,状态如下:

如果再新建一个文件hello.c,但不添加到版本库,查看状态会出现以下结果:

2.结合github
上面所说的版本库属于本地的版本控制系统,github则是远端的版本库,一般个人用户在github上创建项目,再git clone到本地的版本库,修改完成后再提交到远端服务器上;
首先,在github上新建库:new repository,其中,在初始化选项中,readme.md文件用于说明项目,gitignore指明哪些文件不会纳入到版本控制中(比如只让源码进入版本控制,源码生成的结果文件不纳入版本控制,即不开源),license则是该版本库选择的协议(有GPL等);
新建好项目后,会得到一个URL,用户在本地借助:

git clone URL

将项目克隆到本地


下面是用于后续提交等操作的常用命令:

git add [files] 将文件添加到版本库,若用 git add . 代表将当前目录下所有文件纳入
git commit -m "the log" 将文件提交到仓库
git log 查看提交记录,即版本库的修改记录
git status 查看提交状态git diff [files] 查找前后文件的差异
git reset --hard HEAD^ 回滚到上一版本git pull 将最新版本拉回到本地
git push 推送最新版本到github

在commit前需要指明本地的身份:

git config --global user.email "xxxxx.com"

git push前需要提供github账号,用以明确身份


push完成后,远端版本库将会新增文件,并有修改记录:

3.commit和push
commit和push体现了git的分布式管理,git可以管理本地仓库,和远程仓库:
commit用于将本地修改的文件提交到本地库;
push将本地仓库的最新信息推送到远程库;
commit与push分开的好处是,避免由于网络原因导致提交到服务器的文件丢失,是否push到服务器完全由用户选择

第三课.Linux代码编辑器相关推荐

  1. 左神算法中级班第三课[C++代码]

    左神算法中级班第三课[C++代码] 第一题:流水线打包问题[阿里原题] 代码 第二题 代码 第三题:打印螺旋矩阵 代码 第四题 代码 第五题:判读aim是否在矩阵中 代码 第七题:topK问题 代码 ...

  2. linux 代码编辑器软件下载,slickedit 2016 linux下载

    slickedit 2016 for linux是一款可以在linux系统上使用的代码编辑器,软件支持40多种编程语言代码的编辑操作,并拥有代码分析.代码高亮以及代码美化等多种功能,并且支持多文档同时 ...

  3. VIM源生linux代码编辑器使用

    本文介绍的均为非常实用的vim使用技巧和配置技巧 内容from日常使用经验和网络 1. 索引工具ctags使用 参考:vim插件ctags的安装和使用_G_BrightBoy的专栏-CSDN博客 1. ...

  4. linux代码编辑器——vim

    文章目录 1. 概念 2.安装 3. vim的使用 1.使用一些按键没有反应 2. 模式转换 1.命令模式转换到插入模式 1. a 2. i 3. o 2.命令模式切换到底行模式 1. 退出 3. 整 ...

  5. linux逻辑或的用法,第三课 Linux逻辑运算符

    *逻辑运算符 事件1&&事件2 :事件1 并且事件2成立,整个事件才成立 事件1 ||事件2 :事件1 或者事件2 成立, 整个事件才成立 事件1 -a事件2:and啊: 事件1 -o ...

  6. 最受Linux程序员欢迎的7个代码编辑器的介绍及下载地址

    Linux平台上的代码编辑器太少了,Linux程序员经常抱怨,自从他们使用了免费开源的系统平台后,作为一名程序员,却并没有在代码编辑器上得到足够的重视.下面我们分享了7个最受Linux程序员欢迎的代码 ...

  7. Linux 常用编辑器优缺点对比

    1 .Vim Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和Emacs并列成为类Unix系统用户最喜欢的编辑器. 2 .Ecli ...

  8. Python编程 代码编辑器

    作者简介:一名在校计算机学生.每天分享Python的学习经验.和学习笔记.  座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.编辑器介绍 二.Python 自带编辑器 ...

  9. 介绍linux下Source Insight强大代码编辑器sublime_text_3

    Centos6.4下安装Sublime Text 3 背景 1 一. 运行环境 1 二.安装环境配置 1 三.创建快捷方式 1 四.配置全局环境 2 五.操作界面 3 背景 在windows操作系统系 ...

最新文章

  1. 简单的python服务器程序
  2. “95后”曹原又双叒叕发Nature了!1个月2篇,已经第6篇了……
  3. Java泛型之泛型参数
  4. Mac平台下安装与配置MySQL
  5. MongoDB 表结构分析工具介绍 -- Variety
  6. python中pandas计数_python – Pandas:根据条件计数进行分组
  7. docker搭建nginx+php+mysql环境
  8. 微型计算机ROW,微型计算机原理与汇编语言程序设计 第3章 80x86微处理器及其体系结构zrow0c_d.ppt...
  9. 基于mysql的分析型数据库_数据仓库_数据分析_分析型数据库_MySQL查询
  10. CSS 实现鼠标移动到图片上图片变大
  11. nginx修改主目录、主页
  12. 魔兽星期二服务器维护,魔兽世界例行维护,假如我星期一晚上通宵,在星期二凌晨五点维护时我没退出游戏,会被强制退出么?...
  13. sql server查看密码使用天数和剩余天数
  14. React项目中提示caniuse-lite已过时,建议更新
  15. 大数据与传统数据对比
  16. 为您揭秘当今直播源码为何如此火爆
  17. 公众号创建菜单报错40001及菜单出现在先前公众号上的问题
  18. tracert路由跟踪(ICMP)
  19. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行
  20. 制作右下角箭头的.9图片

热门文章

  1. 分布式事务最经典的七种解决方案
  2. 浅析 SpringMVC 中返回对象的循环引用问题
  3. 我是如何把微服务的这个模式落地的:一个服务一个数据库模式(中)
  4. 搞 Java 怎么达到年薪 50w ?我的一些想法和经历
  5. 一文带你搞懂 MySQL 分区!
  6. 阿里老员工吐槽:新员工水平差!不服管理!还不加班!我要汇报经理让对方无法转正!...
  7. 高并发的场景下,不能不说的限流算法
  8. 拼多多java开发一面、二面合并面经
  9. Eclipse-常用插件
  10. HTML的标签描述20