2014-06-10 11:21:02 yand789 阅读数 35
  • Linux C语言编程基础视频精讲

    本课程讲解Linux编程下C语言的基础编程知识,包括环境构建,Linux shell命令 ,Linux VI编辑器,Linux GCC编译器使用,C语言保留字,变量,表达式、语句、函数、程序的结构、数据结构与算法、链表与栈。

    17583 人正在学习 去看看 沈寒
linux c/c++ 编辑器 source insight / vs2008 / eclipse
2018-07-30 20:21:25 lds_include 阅读数 72
  • Linux C语言编程基础视频精讲

    本课程讲解Linux编程下C语言的基础编程知识,包括环境构建,Linux shell命令 ,Linux VI编辑器,Linux GCC编译器使用,C语言保留字,变量,表达式、语句、函数、程序的结构、数据结构与算法、链表与栈。

    17583 人正在学习 去看看 沈寒

vi编辑器

(一)vi/vim是什么?

  • Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便。vi就是一种功能强大的文本编辑器,而vim则是高级版的vi,不但可以用不同颜色显示文字内容,还能进行诸如shell脚本、C语言程序编辑等功能,可以作为程序编辑器。

(二)为什么要学习vi/vim?

  • 首先所有的Linux发行版系统上都会默认内置vi编辑器,而不一定带有其他文本编辑器,非常通用;其次,很多软件的编辑接口都会默认调用vi;第三,vi具有程序编辑的能力;最后,vi程序简单,编辑速度相当快速。

(三)vi的三种模式及各个模式之间的转换关系

1.一般模式常用操作

	【h(或向左方向键)】 光标左移一个字符
	【j(或向下方向键)】 光标下移一个字符
	【k(或向上方向键)】 光标上移一个字符
	【l(或向右方向键)】 光标右移一个字符
	
	【[Ctrl] + f】 屏幕向下移动一页(相当于Page Down键)
	【[Ctrl] + b】 屏幕向上移动一页(相当于Page Up键)
	
	【[0][Home]】 光标移动到当前行的最前面
	【[$][End]】 光标移动到当前行的末尾
	
	【G】 光标移动到文件的最后一行(第一个字符处)
	【nG】 n为数字(下同),移动到当前文件中第n行
	【gg】 移动到文件的第一行,相当于"1G"
	【n[Enter]】 光标向下移动n行
	
	【/word】 在文件中查找内容为word的字符串(向下查找)
	【?word】 在文件中查找内容为word的字符串(向上查找)
	【[n]】 表示重复查找动作,即查找下一个
	【[N]】 反向查找下一个
	【:n1,n2s/word1/word2/g】 n1、n2为数字,在第n1行到第n2行之间查找word1字符串,并将其替换成word2
	【:1,s/word1/word2/g】从第一行(第n行同理)到最后一行查找word1注册,并将其替换成word2【:1,s/word1/word2/g】从第一行(第n行同理)到最后一行查找word1注册,并将其替换成word2【:1,s/word1/word2/gc】 功能同上,只不过每次替换时都会让用户确认
	
	【x,X】 x为向后删除一个字符,相当于[Delete],X为向前删除一个字符,相当于[Backspace]
	【dd】 删除光标所在的一整行
	【ndd】 删除光标所在的向下n行
	
	【yy】 复制光标所在的那一行
	【nyy】 复制光标所在的向下n行
	【p,P】 p为将已经复制的数据在光标下一行粘贴;P为将已经复制的数据在光标上一行粘贴
	
	【u】 撤消上一个操作
	【[Ctrl] + r】 多次撤消
	【.】 这是小数点键,重复上一个操作

(五)一般模式切换到编辑模式的操作

1、进入插入模式(6个命令)

	【i】 从目前光标所在处插入
	【I】 从目前光标
	【a】 从当前光标所在的下一个字符处开始插入
	【A】 从光标所在行的最后一个字符处开始插入
	【o】 英文小写字母o,在目前光标所在行的下一行处插入新的一行并开始插入
	【O】 英文大写字母O,在目前光标所在行的上一行处插入新的一行并开始插入

2、进入替换模式(2个命令)

	【r】 只会替换光标所在的那一个字符一次
	【R】 会一直替换光标所在字符,直到按下[ESC]键为止
	【[ESC]】 退出编辑模式回到一般模式

(六)一般模式切换到命令行模式

	【:w】 保存文件
	【:w!】 若文件为只读,强制保存文件
	【:q】 离开vi
	【:q!】 不保存强制离开vi
	【:wq】 保存后离开
	【:wq!】 强制保存后离开
	【:! command】 暂时离开vi到命令行下执行一个命令后的显示结果
	【:set nu】 显示行号
	【:set nonu】 取消显示行号
	【:w newfile】 另存为
	【:set fileencoding】 查看当前文件编码格式
	【:set fileencoding=utf-8】 设置当前文件编码格式为utf-8,也可以设置成其他编码格式
	【:set fileformat】 查看当前文件的断行格式(dos\windows,unix或macintosh)
	【:set fileformat=unix】 将当前文件的断行格式设置为unix格式

(七)文件恢复模式

[O]pen Read-Only】 以只读方式打开文件
	【[E]dit anyway】 用正常方式打开文件,不会载入暂存文件内容
	【[R]ecover】 加载暂存文件内容
	【[D]elete it】 用正常方式打开文件并删除暂存文件
	【[Q]uit】 按下q就离开vi,不进行其他操作
	【[A]bort】 与quit功能类似

(八)块选择(一般模式下用)

	【v,V】 v:将光标经过的地方反白选择;V:将光标经过的行反白选择
	【[Ctrl] + v】 块选择,可用长方形的方式选择文本
	【y】 将反白的地方复制到剪贴板
	【d】 将反白的内容删除

(九)多文件编辑

	【vim file1 file2】 同时打开两个文件
	【:n】 编辑下一个文件
	【:N】 编辑上一个文件
	【:files】 列出当前用vim打开的所有文件

(十)多窗口功能

【:sp [filename]】 打开一个新窗口,显示新文件,若只输入:sp,则两窗口显示同一个文件
【[Ctrl] + w + j】 光标移动到下方窗口
【[Ctrl] + w + k】 光标移动到上方窗口
【[Ctrl] + w + q】 离开当前窗口

(十一)vim配置文件

vim的配置文件为/etc/vimrc,但一般不建议直接修改这个文件,而是在用户根目录下创建一个新的隐藏文件:
vim ~/.vimrc
然后编辑这个文件,常用的配置如下:
bash
"双引号后面的内容为注释
set nu "显示行号
set hlsearch "查找的字符串反白显示
set backspace=2 "可随时用退格键进行删除
set autoindent "自动缩排
set ruler "在最下方一行显示状态
set showmode "在左下角显示模式
set bg=dark "显示不同的底色,还可以为light
syntax on "语法检验,颜色显示

(十二)Dos与Linux的断行字符(文件转化)

dos2unix [-kn] file [newfile]
unix2dos [-kn] file [newfile]
-k:保留该文件原本的mtime时间格式
-n:保留原本旧文件,将转换后的内容输出到新文件

(十三)语系编码转化

iconv --list 列出iconv支持的语系编码
iconv -f 原本编码 -t 新编码 filename [-o new file]
-f:from,后接原本的编码格式
-t:to,后接新编码格式
-o file:可选参数,建立新文件
2019-12-21 18:21:47 qq_45274570 阅读数 7
  • Linux C语言编程基础视频精讲

    本课程讲解Linux编程下C语言的基础编程知识,包括环境构建,Linux shell命令 ,Linux VI编辑器,Linux GCC编译器使用,C语言保留字,变量,表达式、语句、函数、程序的结构、数据结构与算法、链表与栈。

    17583 人正在学习 去看看 沈寒

Linux的代码脚本编辑器有很多种,接下来分析解说只针对Vmware(Linux5)编辑器。

1、打开vm编辑器命令终端。
这是Linux5编辑器界面显示图
2、在终端提示框中输出vi +文件名+.c
(注:test只是一个文件的命名,命名可以根据自己所需命名)

vi test.c

3、接着输入C语言代码块。
(注:本例以三个数字的从小到大排序做范例)

#include<stdio.h>
 void mian() {
  int a,b,c,t;
  printf("请输入三个数:");
  scanf("%d %d %d",&a,&b,&c);
  if(a>b) {
      t=b;
     b=a;
     a=t;
    }
  if(a>c) {
     t=c;
     c=a;
     a=t;
    }
  if(b>c) {
     t=c;
     c=b;
     b=t;
    }
  printf("%d %d %d\n",a,b,c);
 }

(普及一下,c语言输入时要scanf语句和最后输出的printf语句中的格式一样。)
4、输完代码后,先按ESC键,接着输入:wq(这一步的目的是为了保存输入内容)

 :wq

5、接着输入gcc -o test test.c(此步骤是为了编译程序内容看是否出现了错误语句)

  gcc -o test test.c

6、如果没有错误接着输入./test.c (如果显示权限不够,那就输入./test)

./test.c    or     ./test

7、然后程序没错的话会显示"请输入三个数:",然后按照需要输入三个数,点击回车后会看到三个数已经按照从小到大的顺序排列好了。

2013-04-19 21:11:27 AAA20090987 阅读数 3105
  • Linux C语言编程基础视频精讲

    本课程讲解Linux编程下C语言的基础编程知识,包括环境构建,Linux shell命令 ,Linux VI编辑器,Linux GCC编译器使用,C语言保留字,变量,表达式、语句、函数、程序的结构、数据结构与算法、链表与栈。

    17583 人正在学习 去看看 沈寒
    昨天有个朋友问我想在LINUX环境下学习C++,用什么IDE好?想想我也玩LINUX几年了,就总结一下我在LINUX环境下用过的C/C++编辑器(或IDE)吧。在Windows上,肯定是Visual Studio一家独大,在LINUX上,可以选择的IDE就大多了。。

1:gedit
    虽然这只是一个普通的本文编辑器(外加关键字高亮),但却是我初学LINUX时所用的C++编辑器。不过,当时我写的程序也很简单,有没有IDE关系不大,呵呵。


2: vim(gvim)
    传说中的神器之一,我也花了很多努力,将它改造成下面这个样子,但是我实在不习惯没有鼠标的世界,后来就没怎么用了(在没有界面的LINUX上除外)


3:emacs
    传说中的神器之二,我花了几天来熟悉它,但还是不会用,直接放弃。


4:code::blocks
    我挺喜欢的一个IDE,它就相当于VC6的水平,但它的功能和VS+VA相比,还是有些差距的,所以我平时用得也不是很多。


5:qtcreator
    QT项目组用QT开发的一个IDE,用它来开发QT程序十分方便(看名字就知道),但开发普通的C++程序时就不是那么好用了,总的来说,它还算是一个非常不错的IDE了。


6:eclipse
    传说中比Visual Studio更好用的IDE,但它所占资源实在太大了,在我的虚拟机上,它卡得不得了,加上debug时总是无故挂了。我一怒之下就把它删了。


7:Visual Studio + Visual Assist + VMWare + 共享文件夹
(在虚拟机中安装LINUX,把LINUX的系统的头文件拷出来,加入VA的包含路径,然后用VS在共享文件夹中创建项目,并在VS中编写代码,最后在LINUX中运行makefile)
    这种方法是我目前所使用的开发方式,虽然看起来有点怪异,但编写代码的效率还真不低,也是我最喜欢的开发方式(没有之一)
2015-10-25 23:13:11 AdrianAndroid 阅读数 440
  • Linux C语言编程基础视频精讲

    本课程讲解Linux编程下C语言的基础编程知识,包括环境构建,Linux shell命令 ,Linux VI编辑器,Linux GCC编译器使用,C语言保留字,变量,表达式、语句、函数、程序的结构、数据结构与算法、链表与栈。

    17583 人正在学习 去看看 沈寒

linux下Vi编辑器

1. 简介

vi编辑器

2. 三种工作方式

  1. 命令行模式
  2. 文本输入模式
  3. 末行模式

3. vi一般操作

3.1 文件基本操作

打开文件:

vi test.c

打开文件并跳到指定行:

vi +行号 文件名
vi +5 test.c

打开文件并跳转到模式匹配后的第一行:

vi +/模式字符串 文件名
vi +/main test.c

取消高亮显示:

:set nohlsearch

打开多个文件

vi *.c

打开多个文件并模式匹配到第一行

vi +/main .c .h

3.2 文本插入操作

插入文本命令

i 命令将文本插入到光标所在位置前.
I 命令将文本插入到当前行的行首.

追加文本命令

a 命令将文本追加到光标当前所在位置之后.
A 命令將文本追加到所在行的行尾.

空行插入命令

o 命令将光标所在行的下面插入一个空行.
O 命令将光标所在行的上面插入一个空行.

3.3 文本删除操作

文本删除命令 命令的意义
x 删除光标处的字符
X 删除光标处前面的字符
dd 删除光标处所在的整行
D或d$ 删除从光标所在处开始到行尾的内容
d0 删除从光标前一个字符开始到行首的内容
dw 删除一个单词
d( 删除到上一句开始的所有字符
d) 删除到下一句开始的所有字符
d{ 删除到上一段开始的所有字符
d} 删除到下一段开始的所有字符
d < CR > 删除包括当前行在内的两行字符

注:< C R > 回车

3.4 文本复制操作

文本复制命令 命令的意义
yy 复制光标所在的整行
Y或y$ 复制从光标所在处开始到行尾的内容
y0 复制从光标前一个字符开始到行首的内容
y( 复制到上一句的开始
y) 复制到下一句的开始
y{ 复制到上一段的开始
y} 复制到下一段的开始
y< CR > 复制到当前行在内的两行的内容
yw 复制一个单词

p命令:粘贴命令,粘贴当前缓冲区的内容.
v命令:在命令行模式下进行文本选择.
V命令:在命令模式下按行进行文本选择.

3.5 撤销命令

u命令:该命令撤销上一次所做的操作.
U命令:该命令会一次性撤销自上次移动到当前行以来做过的所有操作,再使用一次U命令则撤销之前的U命令所做的操作,回复被撤销的内容.

3.6 重复命令

命令行模式下 “.” 键即可.

3.7 退出vi

q命令:退出,不过如果修改后,不会退出.
q!命令:强制退出, 不管做没做修改都退出.
w命令:保存文件命令.
w 新文件名 : 将当前文件保存到 ‘新文件名’ 的文件.
w! 文件名 : 将当前文件保存到 ‘新文件名’ 的文件,不管有没有 ‘新文件名’ 文件.
wq命令: 保存并退出.
x命令:如果文件修改过保存文件, 否则直接退出.

4. vi的增强操作

4.1 替换命令

r命令:将当前光标所指的字符替换尾提供的字符.
R命令:进入replace模式.在此模式下,每个输入的字符都会替换当前光标下的字符,直到输入< Esc >结束该模式.

4.2 光标移动

光标移动命令 命令的意义
h 光标左移一个字符
j 光标下移一行
k 光标上移一行
l 光标右移一个字符
H 将光标移动到当前屏幕的第一行
M 将光标移至屏幕显示文件的中间行的行首
L 将光标移至屏幕显示文件的最底行的行首
G numG移动的文件的num行

4.3 按字移动光标

w和W命令:将光标右移至下一个字的字首.区别:w为英文单词-标点符号-和非字母字符, W 两个空格之间的任意内容.
e和E命令:如果光标起始位置处于字内,则e和E命令将把光标移动到本字字尾,则e和E命令将把光标移动到下一个字的字尾.区别:同上.
如果光标处于字内,则移动到字首,如果处于字首,则移动到上一个字的字首.区别:同上.

4.4 按句移动光标

( 命令:该命令将光标移动到上一个句子的开头.
) 命令:该命令将光标移动到下一个句子的开头.

4.5 按段移动光标

{ 命令:该命令将光标向前移至上一个段的开头.
} 命令:该命令将光标向后移至下一个段的开头.

4.6 文本行的移动

‘>’ 命令:>num将指定的正文行向右移动num个空格.
‘<’ 命令:将指定的正文向左移动.
“>>” 命令:右移8个空格.
“<<” 命令:左移8个空格.

4.7 文本的异行移动

m命令:5m2 第5行移动到第2行.

4.8 屏幕移动

滚屏和分页命令 命令的意义
ctrl+u 向前滚动半屏
ctrl+d 向后滚动半屏
ctrl+f 向文件尾滚动一屏
ctrl+b 向文件首滚动一屏

4.9 查找命令

/命令: /string–>从光标处开始向后寻找字符串string.
?命令: ?string–>从光标处开始向前寻找字符串string.
n命令: 重复上一条检索命令.
g/命令: g/string–>使光标停止在第一个检索到的string串的行首.

4.10 替换命令

[range]s/s1/s2/ [option]

option
g/ 表示在全局文件中进行替换.
/c 表示在每次替换之前需要用户进行确认.

例子

“1,10” 表示从第一行到第十行.
“%” 表示整个文件,同”1,..,”从当前行到文件尾.

\< word 替换以word开始的单词的word部分

%s/\< int/abc/cde 表示将以abc开头的单词替换以cde开头.
%s/\< buf/stat_buf/g 更改stat结构的变量名,将整个文件中的buf替换为stat_buf.

4.11 窗口的切分

切换命令 命令的意义
ctrl+w,然后j 移动光标到下面的一个窗口
ctrl+w,然后k 移动光标到上面的一个窗口
ctrl+w,然后q 关闭当前窗口
ctrl+w,然后q 移动光标到另一个窗口

5 设置环境

行号设置命令 :set nu {nonu}
显示行号 :set hlsearch {nohlsearch}
语法缩进命令 :set autoindent
文件存储命令 :set backup {nobackup}
显示选项命令 :set all
语法高亮命令 :syntax on {off}
大小写区分命令 :set ignorecase {noignorecase}

Linux VI编辑器

阅读数 368

没有更多推荐了,返回首页