热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP面试系列之Linux(三)----Vi/Vim编辑器

vi是unix家族下最功能强大的文字编辑器,而vim則是vi的加强版,编辑模式指令說明*i在游

vi 是 unix 家族下最功能强大的文字编辑器,而 vim 則是 vi 的加强版,

编辑模式

  指令 說明
* i 在游標位置進入編輯模式
  I 在游標行的第一個非空白字元進入編輯模式
* a 在游標位置後進入編輯模式
* A 在游標行的最後一個字元進入編輯模式
* o 向下新增一行,並進入編輯模式
  O 向上新增一行,並進入編輯模式
  cc 刪除游標行,並進入編輯模式
* [ESC] 取消指令或退出編輯模式

游标移动

  指令 說明
* gg 移到第一行
* G 移到最後一行
* 行數 → G 移動到第 n 行
  0 移動到該行最前面
  $ 移動到該行最後面
  字數 → [Space] 向右移動 n 個字元
* 行數 → [Enter] 向下移動 n 行

标记与复制

  指令 說明
* v 開始字串標記
* V 開始行標記
* v → [Ctrl]-V 開始區塊標記
* d 刪除標記的內容
* y 複製標記的內容
* yy 複製游標行
  yG 複製游標行到最後一行
  y1G 複製游標行到第一行
  y$ 複製游標處到最後一個字元
  y0 複製游標處到第一個字元
* p 在下一行貼上複製或刪除的內容
  P 在上一行貼上複製或刪除的內容
* [Ctrl]-R → 0 在下一行貼上複製或刪除的內容,適用於編輯模式及指令行

搜尋與取代

  指令 說明
* /搜尋字串 向下搜尋字串
  /\c搜尋字串 向下搜尋字串,不分大小寫
* * 將游標移到字串上,直接按 "*" 也可以做向下搜尋
  ?搜尋字串 向上搜尋字串
  ?\c搜尋字串 向上搜尋字串,不分大小寫
* :set ic 搜尋時不分大小寫
* :set noic 搜尋時要分大小寫
* n 繼續下一個搜尋結果
* N 繼續上一個搜尋結果
* :起始行,終止行s/搜尋字串/取代字串/gic 從第 n 行到第 n 行取代字串 (後面的 g: 整行全部 i: 不分大小寫 c: 詢問)
* :1,$s/搜尋字串/取代字串/gic 全部取代字串 (後面的 g: 整行全部 i: 不分大小寫 c: 詢問)

刪除

  指令 說明
* dd 刪除游標行
* 行數 → dd 刪除 n 行
* dG 刪除游標行到最後一行
  d1G 刪除游標行到第一行
* d$ 刪除游標處到最後一個字元
  d0 刪除游標處到第一個字元

檔案功能

  指令 說明
* :w 存檔 (加 ! 表示強制存檔)
* :w 檔案名稱 另存新檔
* :q 退出 vi (加 ! 表示不存檔強制退出)
* :wq 存檔並退出 vi
* :x 存檔並退出 vi
  :w !sudo tee % 當你編輯好檔案要存檔時,卻發現沒有寫入檔案的權限! 用這會指令可以讓你直接以 root 的權限存檔
* :e 檔案名稱 編輯其它檔案
* :e! 還原至檔案編修前的狀態
  :r 檔案名稱 讀入檔案內容,並加到游標行的後面
* :n 切換到下一個開啟的檔案
* :N 切換到上一個開啟的檔案
* :set nu 顯示行號
* :set nonu 取消行號顯示
* :files 列出所有開啟的檔案
* :Ex 開啟檔案瀏覽器
* :Ex 路徑 於指定路徑開啟檔案瀏覽器
  :Hex 分割水平視窗後,再開啟檔案瀏覽器
  :Vex 分割垂直視窗後,再開啟檔案瀏覽器
  :Tex 新增頁籤後,再開啟檔案瀏覽器
  :Hex 路徑 分割水平視窗後,再於指定路徑開啟檔案瀏覽器
  :Vex 路徑 分割垂直視窗後,再於指定路徑開啟檔案瀏覽器
  :Tex 路徑 新增頁籤後,再於指定路徑開啟檔案瀏覽器

視窗分割

  指令 說明
* :new 新增水平分割視窗
* :new 檔案名稱 新增水平分割視窗,並在新增的視窗載入檔案
* :vnew 新增垂直分割視窗
* :vnew 檔案名稱 新增垂直分割視窗,並在新增的視窗載入檔案
  :sp 新增水平分割視窗,並在新增的視窗載入目前的檔案
  :sp 檔案名稱 新增水平分割視窗,並在新增的視窗載入檔案
  :vsp 新增垂直分割視窗,並在新增的視窗載入目前的檔案
  :vsp 檔案名稱 新增垂直分割視窗,並在新增的視窗載入檔案
* [Ctrl]-W → [方向鍵] 切換視窗
* :only 僅保留目前的視窗

頁籤

  指令 說明
* :tabe 新增頁籤
* :tabe 檔案名稱 新增頁籤,並在新頁籤載入檔案
  :tabc 關閉目前的頁籤,等同 :q
  :tabo 關閉所有頁籤
  :tabn 移至下一個頁籤
  :tabp 移至上一個頁籤
* gt 移至下一個頁籤
* gT 移至上一個頁籤
* :tabfirst 移至第一個頁籤
* :tablast 移至最後一個頁籤
* :tabm 頁籤編號 移至特定編號的頁籤 (編號從 0 開始)
  :tabs 列出所有頁籤

其它指令

  指令 說明
* J 將游標行與下一行合併
* u 還原指令
* [Ctrl]-R 重做指令
* [Ctrl]-N 自動補齊曾輸入過的單字
* . 重覆上一個指令
  ! 命令 執行 linux 指令,並顯示執行結果
  TOhtml 將目前編輯的檔案轉換成 HTML 原始碼 (會新增一個水平分割視窗)

檔案瀏覽器操作

請先以 :Ex 相關指令進入檔案瀏覽器

  指令 說明
* - 到上層目錄
* d 建立目錄
* D 刪除目錄
* R 重新命名
* s 切換排序方式
  r 切換升冪/降冪排序
  i 切換檔案的排列方式
* / 搜尋字串
  x 執行檔案
* o 新增水平視窗
* v 新增垂直視窗

vim 的設定檔

通常我會編輯 /etc/vimrc,在檔案最後加入:

" 顯示列號
set number
" 語法高亮度顯示
syntax on
" 標記搜尋到的字串
set hlsearch
" 自動縮排
set autoindent
" 顯示說明
set ruler
" 顯示編輯狀態
set showmode
" 設定註解的顏色
highlight Comment ctermfg=cyan
" 設定搜尋到的字串顏色
highlight Search term=reverse ctermbg=4 ctermfg=7
" 設定 tab 鍵的字元數
set tabstop=4

 

 

转自:访问

 


推荐阅读
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 解决php错误信息不显示在浏览器上的方法
    本文介绍了解决php错误信息不显示在浏览器上的方法。作者发现php中的各种错误信息并不显示在浏览器上,而是需要在日志文件中查看。为了解决这个问题,作者提供了一种解决方式:通过修改php.ini文件中的display_errors参数为On,并重启服务。这样就可以在浏览器上直接显示php错误信息了。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 使用chrome编辑器实现网页截图功能的方法
    本文介绍了在chrome浏览器中使用编辑器实现网页截图功能的方法。通过在地址栏中输入特定命令,打开控制台并调用命令面板,用户可以方便地进行网页截图操作。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • PHP引用的概念和用法详解
    本文详细介绍了PHP中引用的概念和用法。引用是指不同的变量名访问同一个变量内容,类似于Unix文件系统中的hardlink。文章从引用的定义、作用、语法和注意事项等方面进行了解释和示例。同时还介绍了对未定义变量使用引用的情况,以及在函数和new运算符中使用引用的注意事项。 ... [详细]
  • MySQL数据库查询注意事项及查询命令详解
    本文介绍了在进行MySQL数据库查询时需要注意的地方,包括启动informix数据库的命令oninit,查询状态的命令onstat,以及相关的网址链接。同时还详细解释了oninit命令的用法和参数,包括初始化磁盘空间和共享内存、保留在线模式等。对于需要进行MySQL数据库查询的读者,本文提供了实用的查询命令和相关注意事项,帮助读者更好地进行数据库查询。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • 本文介绍了在Linux中执行.sh脚本时出现/bin/sh^M: bad interpreter: No such file or directory异常的原因分析,并提供了两种解决方法:在Windows下进行编码格式转换,或在Linux中修改文件格式和执行权限。具体操作步骤也在摘要中给出。 ... [详细]
author-avatar
华女-1_572
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有