2017-07-26 21:09:08 u013488347 阅读数 35184
  • Linux C语言编程基础视频精讲

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

    17515 人正在学习 去看看 沈寒

vi编辑器有3种模式:命令模式、输入模式、末行模式。掌握这三种模式十分重要:

  命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[Esc]键都可以返回命令模式。在命令模式中输入字幕“i”就可以进入vi的输入模式编辑文件。

  输入模式:在这个模式中我们可以编辑、修改、输入等编辑工作,在编辑器最后一行显示一个“--INSERT--”标志着vi进入了输入模式。当我们完成修改输入等操作的时候我们需要保存文件,这时我们需要先返回命令模式,在进入末行模式保存。

  末行模式:在命令模式输入“:”即可进入该模式,在末行模式中有好多好用的命令。

4.编辑操作
  进入输入模式命令
  i插入命令 a附加命令 o打开命令 c修改命令
  r取代命令 s替换命令 Esc退出命令

  输入模式的操作
  Home光标到行首
  End 光标到行尾
  Page Up和Page Down上下翻页
  Delect删除光标位置的字符

  删除操作(命令模式使用)
  x删除光标处的单个字符
  dd删除光标所在行
  dw删除当前字符到单词尾包括空格的所有字符
  #x例如3x删除光标处向右的三个字符
  #dd例如3dd从当前行开始向下删除三行文本

  撤销操作
  u命令取消最近一次的操作,可以使用多次来恢复原有的操作
  U取消所有操作
  Ctrl+R可以恢复对使用u命令的操作

  复制操作
  yy命令复制当前整行的内容到vi缓冲区
  yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
  y$复制光标所在位置到行尾内容到缓存区
  y^复制光标所在位置到行首内容到缓存区
  #yy例如:5yy就是复制5行
  #yw例如:2yw就是复制两个单词

  如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。

5.查找和替换
  vi的查找和替换功能主要在末行模式完成:

  至上而下的查找
  / 要查找的字符窜,其中/代表从光标所在位置起开始查找,例如:/ work

  至下而上的查找
  ?要查找的字符窜 例如:/ work

  替换
  :s/old/new用new替换行中首次出现的old
  : s/old/new/g 用new替换行中所有出现的old
  :#,# s/old/new/g用new替换从第#行到第#行中出现的old
  :% s/old/new/g用new替换整篇中出现的old

  如果替换的范围较大时,在所有的命令尾加一个c命令,强制每个替换需要用户进行确认,例如:s/old/new/c 或s/old/new/gc

  6恢复文件
  vi在编辑某一个文件时,会生成一个临时文件,这个文件以 . 开头并以 .swp结尾。正常退出该文件自动删除,如果意外退出例如忽然断电,该文件不会删除,我们在下次编辑时可以选择一下命令处理:

  O只读打开,不改变文件内容
  E继续编辑文件,不恢复.swp文件保存的内容
  R将恢复上次编辑以后未保存文件内容
  Q退出vi
  D删除.swp文件
  或者使用vi -r 文件名来恢复未保存的内容

在GUI下:
(1)可按i进入插入模式
(2)使用鼠标拖动反选要粘贴的内容,按鼠标左键复制选定块到缓冲区
(3)然后将光标移到要粘贴处,按鼠标中键(两键鼠标可同时按左右键),粘贴缓冲区内容。

在纯文本终端下:
(1)选定文本块,使用v进入可视模式;移动光标键选定内容
(2)复制选定块到缓冲区,用y;复制整行,用yy
(3)剪切选定块到缓冲区,用d;剪切整行用dd
(4)粘贴缓冲区中的内容,用p

在同一编辑窗打开第二个文件,用:sp [filename]
在多个编辑文件之间切换,用Ctrl+w

命令前面加数字表示重复次数,加字母表示使用的缓冲区名称。
获取帮助,用:help [内容或命令]

2019-03-04 21:27:49 qq_36738263 阅读数 204
  • Linux C语言编程基础视频精讲

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

    17515 人正在学习 去看看 沈寒

先按ESC输入:set paste再复制粘贴 就行了

2018-06-04 19:24:40 bjzhaoxiao 阅读数 7499
  • Linux C语言编程基础视频精讲

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

    17515 人正在学习 去看看 沈寒

接触linux操作系统之后使用vi/vim编辑器用的就比较多,其实vi/vim编辑文件特别方便,但是一些常见的指令模式下的命令确很容易忘,特别是复制剪切粘贴经常忘,所以小结下以后查用起来比较方便。

1.复制剪切粘贴撤销
复制:
复制一行则:yy
复制三行则:3yy,即从当前光标+下两行。
复制当前光标所在的位置到行尾:y$
复制当前光标所在的位置到行首:y^

剪切:
剪切一行:dd
前切三行:3dd,即从当前行+下两行被剪切了。
剪切当前行光标所在的位置到行尾:d$
剪切当前行光标所在的位置到行首:d^

粘贴:
用v选中文本之后可以按y进行复制,如果按d就表示剪切,之后按p进行粘贴。

撤销与恢复:
'u' : 撤销上一个编辑操作
'ctrl + r' : 恢复,即回退前一个命令
'U' : 行撤销,撤销所有在前一个编辑行上的操作

2.屏幕翻页
Ctrl+u: 向上翻半屏
Ctrl+f: 向上翻一屏
Ctrl+d: 向下翻半屏
Ctrl+b: 向下翻一屏

3.移动光标指令
移动光标普遍使用的是方向键,考虑兼容问题,vi定义太多的方向指令,下面只是一小小部分(常用的几个):
space: 光标右移一个字符
Backspace: 光标左移一个字符
Enter: 光标下移一行
nG: 光标移至第n行首
n+: 光标下移n行
n-: 光标上移n行
n:n0::光标移至第n行尾0:光标移至当前行首: 光标移至当前行尾

4.插入删除指令
常用插入、删除指令如下:
i:在当前光标前插入,光标后文本向后移
a:从当前光标后插入,光标后文本后移
I:在光标所在行首插入(第一个非空白字符前)
A:从光标所在行末插入
o: 在光标所在行下面新增一行(并进入输入模式)
O: 在光标所在行上方新增一行(并进入输入模式)
x: 删除光标所在字符,等同于[Delete]功能键
X: 删除光标前字符,相当与[Backspace]
dd: 删除光标所在的行
r: 修改光标所在字符
R: 替换当前字符及其后的字符,直到按 [ESC]
s: 从当前光标位置处开始,以输入的文本替代指定数目的字符
S: 删除指定数目的行,并以所输入文本代替之
do: 删至行首
d$: 删至行尾

5.退出
退出输入模式,先按一下[ESC]键(有时要多按两下),然后执行:
:w!
:w ——保存当前文件
:wq —— 存盘退出(与指令 :x 功能相同)
:q —— 直接退出,如已修改会提示是否保存
:q! ——不保存直接退出

2019-05-29 22:12:17 w4187402 阅读数 1175
  • Linux C语言编程基础视频精讲

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

    17515 人正在学习 去看看 沈寒

Linux vi vim 的复制 粘贴 撤销 恢复
命令状态下
光标移到哪行就是对哪行进行操作
yy 复制
p 粘贴
dd 删除
u 撤销
ctrl+r 恢复
如果你要问我有什么用?
比如,为了脚本的编写更容易~
在这里插入图片描述
附录:linux快捷键
命令行常见快捷键

CTRL+K 从光标处剪切文本直至本行结束
CTRL+Y 粘贴文本
CTRL+E 将光标移到本行的末尾
CTRL+A 将光标移动到本行的开头
ALT+F 跳转到下一个空格处
ALT+B 回到前一个空格处
ALT+Backspace 删除前一个词
CTRL+W 剪切光标前一个词
Shift+Insert 将文本粘贴到终端中
Ctrl+D 注销
Ctrl+b:光标向行首移动一个字符。 (b:backwards)
Ctrl+ f:光标向行尾移动一个字符。 (f:forwards)
Ctrl+h:向行首删除一个字符。
Ctrl+d:向行尾删除一个字符。
Ctrl+p: 上一个使用的历史命令。 (p:previous)
Ctrl+n: 下一个使用的历史命令。(n:next )
Ctrl+t: 交换光标所在字符和其前的字符。
Ctrl+i:相当于Tab键。
Ctrl+o:相当于Ctrl+m.
Ctrl+m:相当Enter键。
Ctrl+n相当于方向向下的方向键。
Ctrl+p相当于方向向上的方向键。
Ctrl+s:使终端发呆,静止,可以使快速输出的终端屏幕停下来。
Ctrl+q:退出Ctrl+s引起的发呆。
Ctrl+z:使正在运行在终端的任务,运行于后台。 (可用fg恢复)
Ctrl+c:中断终端中正在执行的任务。
fg:继续中断的任务。
bg:后台继续中断的任务。
Ctrl+d: 在空命令行的情况下可以退出终端。
Ctrl+[ :相当于Esc键。
Esc键:连续按3次显示所有的支持的终端命令。

2018-04-11 17:16:34 pcwblover008 阅读数 1320
  • Linux C语言编程基础视频精讲

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

    17515 人正在学习 去看看 沈寒

一、vi中使用

先将光标移动到要复制的哪一行,复制是nyy,n代表从光标开始的行数。粘贴是p,

需要注意的是这些操作都是在命令模式操作的,命令模式就是在你所处的任意模式按ESC键,都可以会到命令行模式,这时才可以执行这些操作。

二、vi与外界

在学习使用vim 的过程序,我们知道在vim 里面,粘贴复制的命令是y/p ,但是我们总会碰到这样的问题:如何把vim 里面复制的内容粘贴到vim 之外或者把vim 外面复制的内容粘贴到vim 里面?

经过网上多次的查阅资料,终于学会了怎么实现这个过程

首先,我们先了解这样一个概念:vim 缓冲区和系统剪贴板

vim 里面粘贴复制实际上是在vim 缓冲区 存取数据

而系统的ctry+c ctry+v 是与系统剪贴板之间的交互

我也不知道我这样描述准不准确,反正大概就是这个意思:vim 粘贴复制和系统粘贴复制操作的不是同一个东西,所以系统和vim 之间不是那么容易直接使用的

但是,这个问题还是可以解决的

1. 用vim 打开一个文件,然后执行命令:reg 查看是否有 + 或者 × 号  或者执行:version 命令 查看是否有+clipboard

    如果存在:

   则可以使用 “+y 将vim 里面的内容复制到系统剪贴板或者 +p 将系统剪贴板里面的内容复制到vim 里面

 如果不存在:

   则需要安装vim-gnome, 然后就可以用以上命令粘贴复制

2. 可以在 /etc/vim/.vimrc 里面设置 clipboard=unnamedplus 这样就可以直接使用 y p命令直接粘贴复制了

https://www.cnblogs.com/songlen/p/6883522.html

vi下复制粘贴操作

阅读数 435

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