原贴地址:http://space.itpub.net/519536/viewspace-589227
今天在整理一些DBA维护脚本的过程中,一次又一次的使用到了大小写转换功能,于是乎,整理总结到这个小文儿中,希望对大家有帮助。
举一个在UNIX系统中修改输入脚本的例子的使用场景:
sys@ora10g> col table_name for a14
sys@ora10g> col comments for a55
sys@ora10g> select * from dict where table_name = 'dba_tables';
no rows selected
这里之所以没有查询到数据,是因为'dba_tables'需要是大写的样子'DBA_TABLES'
下面展示一下secooler是如何调用vi编辑器进行修改的
sys@ora10g>define _editor=vi --设置UNIX中SQLPLUS中的编辑器是vi
sys@ora10g>edit --使用edit或ed命令就可以进入到vi编辑的界面
Wrote file afiedt.buf --定位到dba_tables的头部,
--使用“gUw”命令就可以将其变成大写的DBA_TABLES啦
1* select * from dict where table_name = 'DBA_TABLES'
sys@ora10g>/ --再次执行就可以看到结果喽
TABLE_NAME COMMENTS
-------------- -------------------------------------------------------
DBA_TABLES Description of all relational tables in the database
当然,对于伟大的vi编辑器,功能不仅仅是这个,功能还是很丰富的,请慢慢的观看secooler的这个总结小文儿。
所有的操作都是围绕着“gu"和“gU”另个命令展开的。
secooler的语法:[开始位置]gu/Gu[结束位置]
secooler的翻译:
[开始位置] ---- 可以指定开始的位置,默认是光标的当前位置
gu ---- 把选择范围全部小写
gU ---- 把选择范围全部大写
[结束位置] ---- 可以跟着类似的w,6G,gg等定位到错做的结束范围
通过上面的语法翻译,您可能已经暗暗的感受到这个命令的强大了吧,如果还没有,不要着急,看下面慢慢分解(有“理”也要有“例”嘛):
1.“字”级别的大小写转换
guw或gue---- 两个命令功能是一样的:光标后面的“字”会变成小写
guw或gue---- 两个命令功能是一样的:光标后面的“字”会变成大写
扩展一下下
gu6w或gu6e---- 两个命令功能是一样的:光标后面的6个“字”会变成小写
gU6w或gU6e---- 两个命令功能是一样的:光标后面的6个“字”会变成小写
2.“行”级别内容大小写转换
guu/gUU ---- 光标当前行统统变小写/大写
gu0/gU0 ---- 光标位置到行首,统统变小写/大写(不包含光标当前的字母)
gu$/gU$ ---- 光标位置到行尾,统统变小写/大写(包含光标当前的字母)
guG/gUG ---- 光标位置所在行到文章最后一行,统统变为小写/大写
gu1G/gU1G---- 光标位置所在行到文章第一行,统统变为小写/大写
3.整篇内容大小写转化
1GguG/1GgUG整篇文章统统变小写/大写(Vim和gVim中可以使用ggguG/gggUG)
secooler示意:1GguG 可以分三部分解释 1G gu G
1G或vim中的gg ---- 光标定位到文件首
gu ---- 选定范围统统变小写
G ---- 一直操作到文件结束部分
以上是我经常使用的大小写转换的方法,希望对大家有帮助。
再“买一送一”个小技巧,如果您只是想修改光标当前的字母的大小写,可以使用“~”(键盘左上角数字1左边的键)在反复转换。
工欲善其事必先利其器,强烈建议大家熟练使用Vi、Vim,Windows环境下可以使用gVim。
还有一个Windows下模拟Linux的软件Cygwin,非常的优秀,我一直用它,对我提高工作效率起到了很大的帮助。
就到这里,就到这里,休息,休息一下……
-- The End --
以上是转贴的原文。我下面再自已补充一下VI中的命令行替换功能。
:m,ns/old/new/g 从m到n行把old替换成new
:%s/old/new/gc 整篇替换old到new并确认
如果是涉及到不长度的替换,可以引进正则表达式。
:23,45s/([1-9])//g 把从23到45行的符合(1)......(9)形式的字符替换为空。 有了正则表达式的引入,替换时可以天马行空了。
今天在整理一些DBA维护脚本的过程中,一次又一次的使用到了大小写转换功能,于是乎,整理总结到这个小文儿中,希望对大家有帮助。
举一个在UNIX系统中修改输入脚本的例子的使用场景:
sys@ora10g> col table_name for a14
sys@ora10g> col comments for a55
sys@ora10g> select * from dict where table_name = 'dba_tables';
no rows selected
这里之所以没有查询到数据,是因为'dba_tables'需要是大写的样子'DBA_TABLES'
下面展示一下secooler是如何调用vi编辑器进行修改的
sys@ora10g>define _editor=vi --设置UNIX中SQLPLUS中的编辑器是vi
sys@ora10g>edit --使用edit或ed命令就可以进入到vi编辑的界面
Wrote file afiedt.buf --定位到dba_tables的头部,
--使用“gUw”命令就可以将其变成大写的DBA_TABLES啦
1* select * from dict where table_name = 'DBA_TABLES'
sys@ora10g>/ --再次执行就可以看到结果喽
TABLE_NAME COMMENTS
-------------- -------------------------------------------------------
DBA_TABLES Description of all relational tables in the database
当然,对于伟大的vi编辑器,功能不仅仅是这个,功能还是很丰富的,请慢慢的观看secooler的这个总结小文儿。
所有的操作都是围绕着“gu"和“gU”另个命令展开的。
secooler的语法:[开始位置]gu/Gu[结束位置]
secooler的翻译:
[开始位置] ---- 可以指定开始的位置,默认是光标的当前位置
gu ---- 把选择范围全部小写
gU ---- 把选择范围全部大写
[结束位置] ---- 可以跟着类似的w,6G,gg等定位到错做的结束范围
通过上面的语法翻译,您可能已经暗暗的感受到这个命令的强大了吧,如果还没有,不要着急,看下面慢慢分解(有“理”也要有“例”嘛):
1.“字”级别的大小写转换
guw或gue---- 两个命令功能是一样的:光标后面的“字”会变成小写
guw或gue---- 两个命令功能是一样的:光标后面的“字”会变成大写
扩展一下下
gu6w或gu6e---- 两个命令功能是一样的:光标后面的6个“字”会变成小写
gU6w或gU6e---- 两个命令功能是一样的:光标后面的6个“字”会变成小写
2.“行”级别内容大小写转换
guu/gUU ---- 光标当前行统统变小写/大写
gu0/gU0 ---- 光标位置到行首,统统变小写/大写(不包含光标当前的字母)
gu$/gU$ ---- 光标位置到行尾,统统变小写/大写(包含光标当前的字母)
guG/gUG ---- 光标位置所在行到文章最后一行,统统变为小写/大写
gu1G/gU1G---- 光标位置所在行到文章第一行,统统变为小写/大写
3.整篇内容大小写转化
1GguG/1GgUG整篇文章统统变小写/大写(Vim和gVim中可以使用ggguG/gggUG)
secooler示意:1GguG 可以分三部分解释 1G gu G
1G或vim中的gg ---- 光标定位到文件首
gu ---- 选定范围统统变小写
G ---- 一直操作到文件结束部分
以上是我经常使用的大小写转换的方法,希望对大家有帮助。
再“买一送一”个小技巧,如果您只是想修改光标当前的字母的大小写,可以使用“~”(键盘左上角数字1左边的键)在反复转换。
工欲善其事必先利其器,强烈建议大家熟练使用Vi、Vim,Windows环境下可以使用gVim。
还有一个Windows下模拟Linux的软件Cygwin,非常的优秀,我一直用它,对我提高工作效率起到了很大的帮助。
就到这里,就到这里,休息,休息一下……
-- The End --
以上是转贴的原文。我下面再自已补充一下VI中的命令行替换功能。
:m,ns/old/new/g 从m到n行把old替换成new
:%s/old/new/gc 整篇替换old到new并确认
如果是涉及到不长度的替换,可以引进正则表达式。
:23,45s/([1-9])//g 把从23到45行的符合(1)......(9)形式的字符替换为空。 有了正则表达式的引入,替换时可以天马行空了。