1
ltkun 2022-05-31 20:17:51 +08:00 via Android
查看的话 head 编辑的话总要打开才能编辑了吧
|
2
Splatoon 2022-05-31 20:20:35 +08:00 4
修改内容不多的话,不妨用 awk sed 这类工具。
|
3
James369 2022-05-31 20:20:52 +08:00 2
dd 一段出来编辑,再 dd 回去
|
4
ltzliwe 2022-05-31 20:21:41 +08:00 3
```
head -[N] file > small vim small tail -n +[N+1] > large cat small large > result ``` 拆掉编辑就可以。。记得先实验一下 |
5
thedrwu 2022-05-31 20:35:14 +08:00 via Android
关了语法高亮编辑器来很轻松
|
6
20015jjw 2022-05-31 20:47:19 +08:00 via iPhone
没高亮应该是直接可以编辑吧
|
7
Zerek 2022-05-31 20:49:56 +08:00 via Android
康康 split 命令先给拆出来?
|
8
Alliot 2022-05-31 20:51:18 +08:00 via Android
用 readline 来改。。
|
9
bootvue 2022-05-31 20:54:56 +08:00 1
拆成一堆小文件 或者拉到 windows 下 用 piloedit 编辑 搜索很爽
|
10
codehz 2022-05-31 21:00:38 +08:00 via Android
(无论如何,如果改变了开头的长度,后面 10G 的内容都需要重写一遍才可以保存(
|
11
LonnyWong 2022-05-31 21:04:19 +08:00 via iPhone
mmap 到内存,用代码来改。
|
12
kiwi95 2022-05-31 21:18:37 +08:00 via Android
知道哪几行的话 sed 替换下
|
13
darklights 2022-05-31 21:54:52 +08:00 11
----- 以下跟楼主无关 -----
每次看到有人吹 vim 的大文件性能就想吐。本以为吐着吐着就惯了,没想到吃饱饭后看到还是会吐。 打开 900m 的纯 txt 占用 1G 内存,编辑操作会不会卡死完全看运气,保存文件整个重写,gVim 甚至连最基本的滚动都能跑满一个核卡死,管这叫“很轻松”?对,vim 非常牛非常叉,程序员的神器,然而但是不过完全没有对大文件有任何针对优化。 那些 L/V 吹,找台 Windows 的机器,装个 emeditor ,看看有针对性优化的编辑器长什么样子:编辑机械盘上的 1G 文件吊打 vim 编辑 ssd 上的 1G 文件,分块保存,而且只需 300m 内存。 ----- 以上跟楼主无关 ----- |
14
pagxir 2022-05-31 22:05:57 +08:00 via Android
装个 hexedit 吧,文本编辑器本来就不是用来编辑二进制文件的
|
15
HankLu 2022-05-31 22:08:23 +08:00 2
啥文本?不会是裤子吧
|
16
documentzhangx66 2022-05-31 22:25:11 +08:00 3
这事本质与 Linux 哲学有关。Linux 哲学是一个 exe 只做一件事,这样可以高复用+高度解耦地模块化。但问题是,高性能的东西是另一个极端,需要高耦合才行。
|
17
ufan0 2022-05-31 23:10:51 +08:00
借楼问下 vscode
依稀记得 16/17 年那会儿,vscode 打开 200MB 的 txt 响应速度非常快,现在打开 100MB 的 txt 都非常缓慢甚至卡,请问你们有遇到这样的问题吗? 16/17 年用的处理器是 intel i7-6700HQ ,现在用的处理器是 intel11 代和 m1 。 |
18
searene 2022-05-31 23:11:57 +08:00
一般情况下,打开大文件一开始要等待,这是因为 vim 在做语法检测之类的事情,直接按一下 ctrl + c 终止就可以看到文件内容了,可以试一下
|
19
imycc 2022-05-31 23:20:49 +08:00
如果知道修改的模式,比如删除或替换指定内容,可以用 sed ,指定行数来修改。
还有一个没试过的办法,把你的.vimrc 备份后挪走,用不加载任何插件跟配置的情况下打开试试 |
20
swsh007 2022-05-31 23:30:17 +08:00 via Android
跟 vi 没啥关系
跟 buffer 有关 早年 32 位的 UltraEdit 就快的很 可惜越来越慢了 |
22
muzuiget 2022-06-01 02:10:09 +08:00
二进制模式 vim -b file
|
23
ETiV 2022-06-01 04:18:21 +08:00 1
vim -u NONE file
然后多等等才能打开;保存的时候也是:多等等。。。 |
24
kiwi95 2022-06-01 05:15:55 +08:00 via Android
@darklights 只能说设计目的不一样,为啥要拉踩呢,emeditor 我大概 10 年前有过一段时间没坚持用下去,确实有优点但还是小众软件
|
25
darklights 2022-06-01 05:45:19 +08:00
@kiwi95 我可没有踩 vim 。“vim 非常牛非常叉,程序员的神器”,请默念三遍。事实上 vim 的 line buffer 写的非常牛叉,即使没有针对大文件优化,手动关闭一些特性,打开 1G 的文件也能凑合使用。相比之下 Atom 之流基于 line buffer 的编辑器的 model 部分跟玩具一样,扫两眼就能看个大概,而 Vim 的那个代码看的我两眼发黑都没弄明白。
|
26
lishuolin 2022-06-01 06:01:53 +08:00 via iPhone
EmEditor 无论多大都秒开
|
27
darklights 2022-06-01 06:20:53 +08:00 via Android
书接上回:但终究只是本身性能好,顺带能打开 1G 文件凑合用,跟 EditPlus 、NP 加加差不多。跟专门用内存映射做大文件支持的编辑器,差距肉眼可见。
所以重点是,某些人吹个毛呀。 |
28
kiwi95 2022-06-01 07:12:05 +08:00 via Android 8
|
29
duyaofei 2022-06-01 08:03:58 +08:00
先 split ,然后 vim
或者下载到 windows ,用 EmEditor |
30
RickyC 2022-06-01 08:51:29 +08:00
花钱买 UltraEdit 呀
|
31
276562578 2022-06-01 09:07:57 +08:00 1
之前仗着自己内存大,开了个 50G 的文本,最后编辑起来 emmmmmm ,老老实实用 sed 、awk 、head 、tail
|
32
kiwi95 2022-06-01 10:14:52 +08:00 via Android
@276562578 刚入职前司时在容器内 vim 查看日志,直接 oom 把实例搞挂了。从此打开不了解的文件都先看下大小
|
33
crazycookie 2022-06-01 10:17:09 +08:00
语法不高亮,关闭插件,普通编辑的话,问题不大,但是你机器内存要大
最大的干过 20G 左右的,直接编辑,sql 文件 |
34
darklights 2022-06-01 11:02:45 +08:00 via Android
@kiwi95 OK ,没人吹,确实用 vim 编辑 20g 的文件“很轻松”,怪我昨晚吃得太饱,反应太敏感。我认错。
|
35
james122333 2022-06-01 11:14:19 +08:00
@pagxir
vim 可以 16 进制编辑 回一下楼主的 基本上楼上很多人讲的都很耗能 以下这个才是最好的解法 https://sourceforge.net/projects/joinsplitfs user 权限秒挂载 编辑后卸载(fusermount -u)就可以 大而全才会要求 vim 本身来解决 然而 vim 本身就可以调用外部工具 |
36
singerll 2022-06-01 11:14:42 +08:00
既然是文本文件,直接压缩下试试,可能就剩几百兆了,传到本机再解压编辑。
|
37
NeezerGu 2022-06-01 11:23:13 +08:00
@darklights 这个, 订阅制次年 20 刀一年有点小贵啊……
|
38
eephee 2022-06-01 14:05:00 +08:00 via iPhone
这里没人吹 vim ,只有人叫别人不要吹 vim 。
|
39
Buges 2022-06-01 14:12:09 +08:00 via Android
@james122333 这倒是个不错的思路,直接用 loop device 和 device mapper 那一套也可以实现映射访问特定的 offset 和 size 。
|
40
darklights 2022-06-01 14:38:37 +08:00
@NeezerGu 有个人免费版。我也只是以前因为手头上的编辑器搞不掂而用过,下载,安装,真•“很轻松”的搞掂,卸载,然后愉快的打开 d:\学习资料\日语视频
对程序员来说,编辑功能是 NP 加加那一级别,没必要花钱买这个。不过不得不说,性能真的是目前文本编辑器里的标杆。 |
41
james122333 2022-06-01 15:00:32 +08:00
|
43
cassyfar 2022-06-01 15:05:12 +08:00
可以用 sed ,不行就多等下 vim ,
再不行可以装个 virt-manager 起个 windows 再装个 emeditor 应该也可以秒解决 |
44
Buges 2022-06-01 15:39:52 +08:00 via Android
@james122333 可以直接用 losetup 指定 offsset 和 size 映射特定区域,就是映射出来的文件会被识别成设备文件,可能一般编辑器不让编辑。
|
45
gengchun 2022-06-01 15:45:07 +08:00 1
一般来说,其实用 less/sed 也足够了。因为不可能是真的打开文件写代码。具体到这种大文件操作,没有必要用 vim ,本身服务器上的操作也不建议用 vi/vim 这种进行。要运维类 Unix 系统,学习一下 sed 这类工具还是值得的。而且确实是 CS 必修的东西。
这种事情争论编辑器性能就很奇怪了,甚至要推广一个比 emacs 还小众的,只支持 windows 操作系统的编辑器就很奇怪了。 |
46
tomychen 2022-06-01 15:51:42 +08:00
看到大文件,不知道我为啥第一反映就是 UltraEdit
|
47
tunzao 2022-06-01 16:22:49 +08:00 1
sed
|
48
jheroy 2022-06-01 16:34:02 +08:00 2
用 vim 特别简单: vim '+%!head -10' xxx.log 把 10 改成你想要的行数就行.
|
49
james122333 2022-06-01 17:05:32 +08:00
|
50
james122333 2022-06-01 17:58:30 +08:00
|
51
james122333 2022-06-01 20:18:28 +08:00 via Android
看来应该是没了 改天自己造一个轮子
|
52
jack1998 2022-06-01 22:14:18 +08:00
split 切一下 在 vim
|
53
feedcode 2022-06-01 22:58:31 +08:00
把 swap 关了就快了
~/.vimrc set noswapfile 如果想更智能一点, https://vi.stackexchange.com/questions/3484/disable-swap-file-for-large-files https://www.vim.org/scripts/script.php?script_id=1506 |
54
feedcode 2022-06-01 23:01:49 +08:00
vim 也提供了 arguments
-n No swap file will be used. |
55
feilong 2022-06-02 07:37:09 +08:00 via Android
vim 不太清楚,不过有个叫 ed 的命令做这个问题可能更合适
|