博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第 2 章 Editor
阅读量:6869 次
发布时间:2019-06-26

本文共 4633 字,大约阅读时间需要 15 分钟。

目录

2.1. VIM
2.1.1. New text file line delimiter
2.1.2. vim中的出现^M
2.1.3. tab 符
2.1.4. 粘贴是禁用格式化功能
2.1.5. Regular Expressions
2.1.5.1. search & replace
2.1.5.2. 会去掉vim文件中的空白行
2.1.6. 大小写转换
2.1.7. split
2.1.8. vimrc
2.1.9. vimdiff - edit two or three versions of a file with Vim and show differences
2.1.9.1. 光标移动
2.1.9.2. 文件合并
2.1.9.3. 上下文
2.1.9.4. 保存于退出
2.1.10. vim backup script
2.2. Eclipse
2.2.1. AnyEdit
2.2.2. Eclim
2.2.3. Vrapper
2.3. Komodo Edit
2.4. Syntext Serna Free
2.5. SciTE
  • vi

    vi file

  • emacs

    emacs

  • nano/pico

    nano file / pico file

  • joe

    joe file

    sudo apt-get install joe

2.1. VIM

vi-vim-cheat-sheet.gif

Vi IMproved - enhanced vi editor (transitional package)

sudo apt-get install vim-perl vim-python vim-latexsuite

2.1.1. New text file line delimiter

:set ff:set ff=dos:set ff=unix:set ff=mac

2.1.2. vim中的出现^M

sudo apt-get install tofrodosdos2unix

输入

:set notextmode

2.1.3. tab 符

set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker

2.1.4. 粘贴是禁用格式化功能

:set paste

2.1.5. Regular Expressions

2.1.5.1. search & replace
%s/neo/leo/g%s#/logs#/www#g
2.1.5.2. 会去掉vim文件中的空白行
:%s/^\s*\n/

2.1.6. 大小写转换

将光标移动到想要大小写转换的地方然后键入

guw (大写转换成小写)

gUw (小写转换成大写)

g~w (是改变光标到词尾)

guu gUU g~~ (是改变一行)

2.1.7. split

:split 
按拆分模式打开文件,默认为上下拆分:vsplit
左右拆分

Ctrl-w w

切换活动窗口

Ctrl-w Ctrl-w

同上

Ctrl-w h/j/k/l

切换活动窗口为 左/上/下/右 边的窗口

:q

关闭光标所在的分屏

2.1.8. vimrc

neo@netkiller:~$ cat /home/neo/.vimrcset expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=markerset pasteset rulerset numberset nocp " don't open Vim in Vi-compatible modeset bs=2 " setup backspace to delete previous char in insert modeset encoding=utf-8 fileencodings= " set UTF-8 for all filesset autoindentset smartindentset t_Co=256syntax onset syntax=tt2htmlset hlsearchcolorscheme elflord

2.1.9. vimdiff - edit two or three versions of a file with Vim and show differences

# vimdiff  FILE_LEFT  FILE_RIGHT# vim -d  FILE_LEFT  FILE_RIGHT
# vim FILE_LEFT:vertical diffsplit FILE_RIGHT
2.1.9.1. 光标移动

左右窗口联动控制

:set scrollbind:set noscrollbind

在各个差异点之间快速移动。

]c	跳转到下一个差异点[c	跳转到上一个差异点

如果在命令前加上数字的话,可以跳过一个或数个差异点,从而实现跳的更远。比如如果在位于第一个差异点的行输入"2]c",将越过下一个差异点,跳转到第三个差异点。

2.1.9.2. 文件合并
文件比较的最终目的之一就是合并,以消除差异。如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令dp (diff "put")如果希望把另一个文件的内容复制到当前行中,可以使用命令do (diff "get",之所以不用dg,是因为dg已经被另一个命令占用了)如果希望手工修改某一行,可以使用通常的vim操作。如果希望在两个文件之间来回跳转,可以用下列命令序列:Ctrl-w, w在修改一个或两个文件之后,vimdiff会试图自动来重新比较文件,来实时反映比较结果。但是也会有处理失败的情况,这个时候需要手工来刷新比较结果::diffupdate如果希望撤销修改,可以和平常用vim编辑一样,直接
, u但是要注意一定要将光标移动到需要撤销修改的文件窗口中。
2.1.9.3. 上下文
上下文的展开和查看比较和合并文件的时候经常需要结合上下文来确定最终要采取的操作。Vimdiff 缺省是会把不同之处上下各 6 行的文本都显示出来以供参考。其他的相同的文本行被自动折叠。如果希望修改缺省的上下文行数,可以这样设置::set diffopt=context:3可以用简单的折叠命令来临时展开被折叠的相同的文本行:zo (folding open,之所以用z这个字母,是因为它看上去比较像折叠着的纸)然后可以用下列命令来重新折叠:zc (folding close)
2.1.9.4. 保存于退出
同时操作两个文件在比较和合并告一段落之后,可以用下列命令对两个文件同时进行操作。比如同时退出::qa (quit all)如果希望保存全部文件::wa (write all)或者是两者的合并命令,保存全部文件,然后退出::wqa (write, then quit all)如果在退出的时候不希望保存任何操作的结果::qa! (force to quit all)

2.1.10. vim backup script

#!/bin/bash######################################### vim script for automatic backup by neo########################################datetime=`date +"%Y-%m-%d.%H:%M:%S"`current_date=`date +"%Y-%m-%d"`current_time=`date +"%H:%M:%S"`filename=`basename $1`original=$1if [ -f ${original}.original ]then    echo "[${datetime}] [B] ${original} to ${original}.original" >> ~/backup/history.logelse    cp ${original} ${original}.originalfiif [ -d ~/backup/${current_date} ]then    echo "[${datetime}] [O] ${original}" >> ~/backup/history.logelse    mkdir -p ~/backup/${current_date}    echo [${datetime}] [C] mkdir ~/backup/${current_date} >> ~/backup/history.logfibackup=~/backup/${current_date}/${filename}.${current_time}if [ -f ${original} ];then    cp ${original} ${backup}    echo "[${datetime}] [B] ${original} to ${backup}" >> ~/backup/history.logfivim ${original}datetime=`date +"%Y-%m-%d.%H:%M:%S"`current_date=`date +"%Y-%m-%d"`current_time=`date +"%H:%M:%S"`newfile=~/backup/${current_date}/${filename}.${current_time}if [ -f ${original} ];then    if [ -f ${backup} ];    then        original_sha=`sha1sum ${backup} |awk -F ' ' '{print $1}'`        newfile_sha=`sha1sum ${original} |awk -F ' ' '{print $1}'`        if [ $original_sha = $newfile_sha ];        then            echo "[${datetime}] --- " >> ~/backup/history.log            exit        fi    fi    cp ${original} ${newfile}    echo "[${datetime}] [M] ${original}" >> ~/backup/history.log    echo "[${datetime}] [B] ${original} to ${newfile}" >> ~/backup/history.logfiecho "[${datetime}] --- " >> ~/backup/history.logexit

原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

你可能感兴趣的文章
DNS服务在网络中的应用
查看>>
iPhone异常关机怎么解决?中国消费者协会请苹果10日内答复
查看>>
Sbo通用数据选择功能的实现
查看>>
Oracle 快照控制文件(snapshot control file)
查看>>
11家小微贷机构签约费埃哲云平台 提升P2P风险管理
查看>>
Linux系统下文件类型解析
查看>>
Nginx做tomcat代理
查看>>
.NET开发者常会忽略的几个错误
查看>>
方便适用的企业监控之---CactiEZ 0.6
查看>>
haproxy实现均衡负载(linux)
查看>>
分治思想实现求连续子数组的最大和
查看>>
TypeScript学习(三)—— 类
查看>>
高并发场景下缓存处理的一些思路
查看>>
4.9k Star 安卓面试知识点,请收下!
查看>>
学习springBoot(5)log4j2日志框架整合
查看>>
何以回首所来径
查看>>
React中的url参数——this.props.match
查看>>
再有人问你volatile是什么,就把这篇文章发给他
查看>>
AngularJS学习日记(三)指令
查看>>
智能合约-Solidity官方文档(1)
查看>>