vim 如何将每行的第一个字符如果是字母就改为大写

Vim、Emacs配置和使用
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

vim 如何将每行的第一个字符如果是字母就改为大写

#1

帖子 cao627 » 2012-03-03 20:00

vim 如何将每行的第一个字符如果是字母就改为大写
头像
Fermat618
帖子: 728
注册时间: 2008-12-28 16:01

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#2

帖子 Fermat618 » 2012-03-03 20:04

我都是手动干的。再聪明的程序也很可能干错,于是干脆手动写。
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
头像
牵牛星
帖子: 998
注册时间: 2011-11-26 11:44
来自: ★光坂高校文艺部★

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#3

帖子 牵牛星 » 2012-03-03 20:18

这是绝对不可能D 哪有那么好用的软件 :em09
openSUSE+KDE
我用A卡,不曾杯具
驱动开源之不提倡者
AMD_N930+AMD_HD5470+AMD_M880G(3A党)
Linux就是2B(NB的架构+SB的驱动)
子曰:写C时适当d "断行" || "缩进" || "空格" == "注释"
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#4

帖子 lilydjwg » 2012-03-03 20:21

Fermat618 写了:我都是手动干的。再聪明的程序也很可能干错,于是干脆手动写。
MS Word 把每句的第一个字母大写非常讨厌!还有我的 Android 手机,也这种行为,每次得手动按两下才能输入小写字母开头的兔子,烦死了 :em20 :em20 :em20 :em20 :em20 :em20 :em20
头像
daf3707
论坛版主
帖子: 12739
注册时间: 2007-06-13 15:57
来自: 在他乡

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#5

帖子 daf3707 » 2012-03-03 20:29

用脚本?
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#6

帖子 cao627 » 2012-03-03 20:31

代码: 全选

gg

代码: 全选

ctrl v

代码: 全选

G
区块选中第一列

代码: 全选

gU
以下下情况不适用
aaaa
1bbbb
cccc
.......
第二行的第一个字母无法转换到
1qa2ws3ed
帖子: 159
注册时间: 2011-06-29 19:18
系统: Archlinux

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#7

帖子 1qa2ws3ed » 2012-03-03 20:46

代码: 全选

:%s/^\([a-z]\)/\U\1/
Ubuntu Linux, Linux for human beings.
头像
xujc
帖子: 680
注册时间: 2009-12-06 15:04

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#8

帖子 xujc » 2012-03-03 20:49

1qa2ws3ed 写了:

代码: 全选

:%s/^\([a-z]\)/\U\1/
虽然看不懂,不过貌似这个正确 :em06
头像
Fermat618
帖子: 728
注册时间: 2008-12-28 16:01

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#9

帖子 Fermat618 » 2012-03-03 21:06

lilydjwg 写了:
Fermat618 写了:我都是手动干的。再聪明的程序也很可能干错,于是干脆手动写。
MS Word 把每句的第一个字母大写非常讨厌!还有我的 Android 手机,也这种行为,每次得手动按两下才能输入小写字母开头的兔子,烦死了 :em20 :em20 :em20 :em20 :em20 :em20 :em20
对于大小写敏感的程序语言把第一个字母大写就是错了。可是我遇到好多书都是这么干的,可能用word排出来的吧。
爱因斯坦会弹钢琴
爱因斯坦会拉小提琴
爱因斯坦会骑自行车
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#10

帖子 lilydjwg » 2012-03-03 22:27

Fermat618 写了:
lilydjwg 写了:
Fermat618 写了:我都是手动干的。再聪明的程序也很可能干错,于是干脆手动写。
MS Word 把每句的第一个字母大写非常讨厌!还有我的 Android 手机,也这种行为,每次得手动按两下才能输入小写字母开头的兔子,烦死了 :em20 :em20 :em20 :em20 :em20 :em20 :em20
对于大小写敏感的程序语言把第一个字母大写就是错了。可是我遇到好多书都是这么干的,可能用word排出来的吧。
当然啦。还有很多直引号变成弯引号的。
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#11

帖子 aerofox » 2012-03-10 22:29

1qa2ws3ed 写了:

代码: 全选

:%s/^\([a-z]\)/\U\1/
还可以简化点

代码: 全选

:%s/./\U&/
Vim 的 :s 命令在后面没有 g 修饰时,每行只处理一次,而且都是从行首开始查的,所以免去了 ^
用 & 可以表示查找的内容,所以不用 \(\) 和 \1
对于不是字母的字符 \U对它没有作用,所以直接查找 . 就可以了。
1qa2ws3ed
帖子: 159
注册时间: 2011-06-29 19:18
系统: Archlinux

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#12

帖子 1qa2ws3ed » 2012-03-11 17:55

aerofox 写了:
1qa2ws3ed 写了:

代码: 全选

:%s/^\([a-z]\)/\U\1/
还可以简化点

代码: 全选

:%s/./\U&/
Vim 的 :s 命令在后面没有 g 修饰时,每行只处理一次,而且都是从行首开始查的,所以免去了 ^
用 & 可以表示查找的内容,所以不用 \(\) 和 \1
对于不是字母的字符 \U对它没有作用,所以直接查找 . 就可以了。
:em38
Ubuntu Linux, Linux for human beings.
cao627
帖子: 992
注册时间: 2007-12-05 10:57
系统: ubuntu14.04
来自: 金山

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#13

帖子 cao627 » 2012-03-15 15:35

11楼你好!
顺便请教一下:对于电影的字幕文件.srt, 格式如下:

1
00:00:21,355 --> 00:00:24,358
Long ago, in ancient China,
在很久以前 在古时候的中国

2
00:00:24,524 --> 00:00:27,736
the Peacocks ruled over Gongmen City.
孔雀一族统治着宫门城

3
00:00:28,529 --> 00:00:32,366
They brought great joy and prosperity to the city
因为烟火的发明

..........

现在发现画面和字幕不一致了。然后第一行时间调(比如+100)到和画面一致了。
接下去的每个时间,都应该+100
有办法用vi实现吗?

还有,有两个.srt文件,一个文件时间轴和画面是匹配的,但字幕不想要,另一个文件时间不匹配,但需要它的字幕
有没有办法用vi实现。
.srt 的文本格式如上。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#14

帖子 eexpress » 2012-03-15 15:40

字幕,有软件专门调整了时间轴的。好几个。
搜索源里面软件的描述。
● 鸣学
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: vim 如何将每行的第一个字符如果是字母就改为大写

#15

帖子 aerofox » 2012-03-15 16:26

要用 vim 实现,也是可以的,替换文本以 \= 开头,就可以使用 vim 的表达式功能,具体看帮助文档,这个功能我也很少使用。也许不如花时间去找找楼上说的专门软件。
回复