第三课.Linux代码编辑器
第三课目录
- 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代码编辑器相关推荐
- 左神算法中级班第三课[C++代码]
左神算法中级班第三课[C++代码] 第一题:流水线打包问题[阿里原题] 代码 第二题 代码 第三题:打印螺旋矩阵 代码 第四题 代码 第五题:判读aim是否在矩阵中 代码 第七题:topK问题 代码 ...
- linux 代码编辑器软件下载,slickedit 2016 linux下载
slickedit 2016 for linux是一款可以在linux系统上使用的代码编辑器,软件支持40多种编程语言代码的编辑操作,并拥有代码分析.代码高亮以及代码美化等多种功能,并且支持多文档同时 ...
- VIM源生linux代码编辑器使用
本文介绍的均为非常实用的vim使用技巧和配置技巧 内容from日常使用经验和网络 1. 索引工具ctags使用 参考:vim插件ctags的安装和使用_G_BrightBoy的专栏-CSDN博客 1. ...
- linux代码编辑器——vim
文章目录 1. 概念 2.安装 3. vim的使用 1.使用一些按键没有反应 2. 模式转换 1.命令模式转换到插入模式 1. a 2. i 3. o 2.命令模式切换到底行模式 1. 退出 3. 整 ...
- linux逻辑或的用法,第三课 Linux逻辑运算符
*逻辑运算符 事件1&&事件2 :事件1 并且事件2成立,整个事件才成立 事件1 ||事件2 :事件1 或者事件2 成立, 整个事件才成立 事件1 -a事件2:and啊: 事件1 -o ...
- 最受Linux程序员欢迎的7个代码编辑器的介绍及下载地址
Linux平台上的代码编辑器太少了,Linux程序员经常抱怨,自从他们使用了免费开源的系统平台后,作为一名程序员,却并没有在代码编辑器上得到足够的重视.下面我们分享了7个最受Linux程序员欢迎的代码 ...
- Linux 常用编辑器优缺点对比
1 .Vim Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和Emacs并列成为类Unix系统用户最喜欢的编辑器. 2 .Ecli ...
- Python编程 代码编辑器
作者简介:一名在校计算机学生.每天分享Python的学习经验.和学习笔记. 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 目录 前言 一.编辑器介绍 二.Python 自带编辑器 ...
- 介绍linux下Source Insight强大代码编辑器sublime_text_3
Centos6.4下安装Sublime Text 3 背景 1 一. 运行环境 1 二.安装环境配置 1 三.创建快捷方式 1 四.配置全局环境 2 五.操作界面 3 背景 在windows操作系统系 ...
最新文章
- 简单的python服务器程序
- “95后”曹原又双叒叕发Nature了!1个月2篇,已经第6篇了……
- Java泛型之泛型参数
- Mac平台下安装与配置MySQL
- MongoDB 表结构分析工具介绍 -- Variety
- python中pandas计数_python – Pandas:根据条件计数进行分组
- docker搭建nginx+php+mysql环境
- 微型计算机ROW,微型计算机原理与汇编语言程序设计 第3章 80x86微处理器及其体系结构zrow0c_d.ppt...
- 基于mysql的分析型数据库_数据仓库_数据分析_分析型数据库_MySQL查询
- CSS 实现鼠标移动到图片上图片变大
- nginx修改主目录、主页
- 魔兽星期二服务器维护,魔兽世界例行维护,假如我星期一晚上通宵,在星期二凌晨五点维护时我没退出游戏,会被强制退出么?...
- sql server查看密码使用天数和剩余天数
- React项目中提示caniuse-lite已过时,建议更新
- 大数据与传统数据对比
- 为您揭秘当今直播源码为何如此火爆
- 公众号创建菜单报错40001及菜单出现在先前公众号上的问题
- tracert路由跟踪(ICMP)
- try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行
- 制作右下角箭头的.9图片