现在真的有人会把无 GUI 的 linux 当做主力开发环境吗?有人实际开发中会用 vim 从头开始写一个中大型项目吗?(例如 nginx 这种加上注释大概十几万行代码的 C 语言工程)
我平时也只是运维自己的服务器会用 vim 上去改改文件,了解一些常用的 vim 操作。如果改的文件比较多我会直接用 winscp 连 ftp 上去修改,因为某些文件目录比较深,或者某些情况下需要不停地切换好几个文件目录,用 ssh 上去操作会很麻烦,我用 winscp 配合 sublime 等编辑器会很高效。而且 vim 在 SSH 下复制粘贴,快速把光标跳转到某一行某一列,或者输入的时候频繁需要切换到首行,末尾,按单词移动光标等操作,要不停的切换插入模式和命令模式有点麻烦。(我是萌新,不太清楚是否还有更高效的操作方式?欢迎指教)对我来说如果所有操作都用纯 ssh+vim 来做那真是无法想象的麻烦和低效率啊。
还有 HHKB 等类似的完全就是为了 vim,传统 linux 环境设计的键盘,这类键盘都不带 home,end,page up/down 和方向键,甚至不知道当前大小写状态,输入密码的时候可能还会出现障碍,使用这类键盘真的能提升开发效率吗?
(虽然我知道在很久以前的计算机使用者确实都是 ssh+vim 这么干的,可是现在都啥年代了,计算机都有 GUI 了,真的还会有人用这种原始的方式来开发项目或者运维服务器吗?)
1
msg7086 2018-11-16 02:55:33 +08:00
|
2
ETiV 2018-11-16 03:15:58 +08:00
有,我们 C++后端有几位同学就用 vim
去年给主程推荐了用 CLion,他说挺好的。 但是我们程序跑起来就得用 20、30G 的内存。Mac 跑不起来,远程调试又麻烦…所以现在还依然用 vim |
3
defel 2018-11-16 03:37:34 +08:00 via iPhone
有肯定有,不过我用不习惯,离宇宙第一 IDE 差远了。
|
4
tmly200 2018-11-16 03:57:31 +08:00 via Android
脱离工作环境工作,小公司还做不到
|
5
quinoa42 2018-11-16 04:09:39 +08:00
> 而且 vim 在 SSH 下复制粘贴,快速把光标跳转到某一行某一列,或者输入的时候频繁需要切换到首行,末尾,按单词移动光标等操作,要不停的切换插入模式和命令模式有点麻烦。
[num]gg, f, t, s 等等了解一下 觉得麻烦一般是你 esc 没有改键,一个想法一定很对 |
6
Andiry 2018-11-16 04:55:38 +08:00
我写的 Linux USB3 driver,文件系统都是无插件 vim 开发的
当然也不是很大,两三万行了不起了 GUI 是必须要有的,不然上网查资料怎么办 |
7
sinxccc 2018-11-16 05:51:18 +08:00 3
呃…我…
不过我是用 Emacs 的,常态是 mosh + tmux attach 到远程的机器上开始干活儿。Mac 主要是邮件客户端加浏览器加终端机。 然后在公司的话摸鱼也是同样 mosh 回自己家里的服务器上。 |
8
hearfish 2018-11-16 05:57:14 +08:00
刚工作那几年用 vim 写 java servlet,配合 javadocs 其实挺好的,现在用 Idea 觉得要被惯坏了
|
9
watzds 2018-11-16 06:56:44 +08:00 via Android
腾讯不少人就用 vim 做开发的,有的还没装插件
|
10
trait 2018-11-16 06:59:45 +08:00 via iPhone
vim 还要方向键,果真新手,你可能是开始不习惯吧
|
11
lazydog 2018-11-16 07:02:19 +08:00 via Android
我目前来讲的所有代码都是用 vim 写的,项目的话也不排除。说实话,我还没用过 IDE 写过代码呢,(逃。。。感觉自己有点落后啊!
|
12
NeoChen 2018-11-16 07:11:30 +08:00 via iPhone
做后端可能没 gui 好说,做前端不可能。还是要结合工作内容,工作环境。
|
13
kiwi95 2018-11-16 07:40:12 +08:00 via Android
有,很多,比例很大
|
14
lxrmido 2018-11-16 07:55:10 +08:00 via iPhone
有一段时间沉迷 vim,用它写过一个十几万行代码的项目,后来因为 sublime 长得太好看没忍住
|
15
ReVanTis 2018-11-16 07:58:12 +08:00 via Android
有,我。主要做 android framework 和 bsp。主力机 windows,wsl 到 Ubuntu 工作。纯 cli,如果需要 gui 就用 x forward 和 xfce。
|
16
xiaqi 2018-11-16 08:03:30 +08:00 via Android
楼主这明显就 vim 新手啊。等熟练了就会觉得真香。
嗨,别人用什么有什么关系,你自己用着自己觉得舒服的 ide 就 ok。 |
17
mangoDB 2018-11-16 08:21:28 +08:00 via Android
萝卜白菜各有所爱。我们组除了我之外,都是直接 ssh 到开发机上用 vim。配置过硬的 vim 也是很强悍的。不过,我选 jetbrains+vim 插件。
|
18
xiadong1994 2018-11-16 08:33:41 +08:00 via iPhone
”而且 vim 在 SSH 下复制粘贴,快速把光标跳转到某一行某一列,或者输入的时候频繁需要切换到首行,末尾,按单词移动光标等操作,要不停的切换插入模式和命令模式有点麻烦。”
你说的这些操作,绝对是 vim 的快捷键更方便,比手移到鼠标上滚来滚去点来点去快太多了。 HHKB 有你说的那些键,只不过要配合 fn 来按。大小写状态,我都把我所有键盘的 caps lock 给替换成 ctrl 了,从来没考虑过这个问题,大写一直用 shift 输。 |
19
Isaac313 2018-11-16 08:35:52 +08:00
这个真不怪 vim,
^ 行首 $ 行尾 gg ngg 切换 hjkl 给个大键盘,双手掌控一切的感觉,真香 |
20
linxu 2018-11-16 08:35:59 +08:00 via Android
你对 vim 的掌握还不够
|
21
jasonyang9 2018-11-16 08:36:53 +08:00 1
|
22
hanxiV2EX 2018-11-16 08:50:49 +08:00 via Android
刚统计了一下,我们公司的游戏服务器引擎代码 10w 行的 C,游戏逻辑脚本 23w 行。不是 vim 就是 emacs。vim 的学习曲线你应该见过,前期痛苦,后期越来越爽的。
|
24
jasonyang9 2018-11-16 08:54:37 +08:00 2
|
25
xml123 2018-11-16 09:17:47 +08:00
@jasonyang9 #24 一直想问这种 learning curve 的横纵坐标到底分别表示什么。
|
26
ebingtel 2018-11-16 09:22:35 +08:00
python 项目开发……登录远程服务器 vim 开发
|
27
jswh 2018-11-16 09:24:06 +08:00
你的编辑器 /IDE 有 vim mode 嘛?有我的就用:doge
|
28
nonkr 2018-11-16 09:24:53 +08:00 via iPhone
windows + vmware + ubuntu server + PuTTY
|
29
innoink 2018-11-16 09:41:30 +08:00 via Android
gvim 不用么?
vim/emacs 都有 gtk 版的,为啥老想着用命令行的? |
30
jasonyang9 2018-11-16 09:52:03 +08:00
@xml123 #25 https://en.wikipedia.org/wiki/Learning_curve
``` The Horizontal Axis represents experience either directly as time (clock time, or the time spent on the activity), or can be related to time (a number of trials, or the total number of units produced). The Vertical Axis is a measure representing learning or proficiency or other proxy for "efficiency" or "productivity". It can either be increasing (for example, the score in a test), or decreasing (the time to complete a test). (Fig 5) ``` x 轴可看作是时间,阅历等 y 轴是效率或熟练度 当然前面那个对比图是半开玩笑的 |
31
xml123 2018-11-16 09:58:04 +08:00
@jasonyang9 #30 但是这样的话 vi 的图表示的意思难道是一上手就效率极高?
|
32
jasonyang9 2018-11-16 10:04:34 +08:00 1
@xml123 #31 说了么,这教授是推荐用 VI 的,所以这是一个带玩笑的对比图。
http://teaching.idallen.com/cst8207/17s/notes/300_vi_text_editor.html |
33
xml123 2018-11-16 10:07:26 +08:00
@jasonyang9 #32 好吧,之前一直没弄懂这个图想表达的意思,感谢解释。
|
34
TangMonk 2018-11-16 10:11:55 +08:00
Visual Studio 效率才叫高
|
35
hei1000 2018-11-16 10:21:39 +08:00
我们公司的 linux 就是没有 gui 的,不过因为办公环境还是在 Windows 环境,还是是通过终端 ssh 上去的,我其他同事用 Vim,我是大部分代码编辑用 Emacs,小部分用 vim
|
36
wfd0807 2018-11-16 10:25:59 +08:00
|
37
iceheart 2018-11-16 10:27:00 +08:00 via Android
人生苦短,我用 vs
|
39
RqPS6rhmP3Nyn3Tm 2018-11-16 11:57:12 +08:00 via iPhone
vim 断点调试有啥好方法吗?直接用 gdb 有点痛苦
|
40
littleylv 2018-11-16 11:58:07 +08:00
我。
PS: 楼主又来引战了。。。 |
41
Archeb 2018-11-16 14:03:39 +08:00
人生苦短,我用 VSC
|
42
MaxTan 2018-11-16 14:28:06 +08:00
vim 除了 debug 和代码重构麻烦点,做开发完全没问题啊,插件配好功能都很齐全的
|
43
MaxTan 2018-11-16 14:35:58 +08:00
复制 y 粘贴 p 跳光标用 hjkl 或者行数 gg 单词移动 eb 行首行末^$,除了写代码的时候用插入模式,平时尽量保证在命令模式状态下,esc 映射到 caps lock 上面小拇指上习惯性狂按
|
44
wtdd 2018-11-16 14:59:45 +08:00
有的是啊,不过一般都用多显示器,毕竟除了 coding 外其他流程工作不可能离开 gui 的
|
45
msg7086 2018-11-16 16:20:35 +08:00
@jasonyang9 @hourann 我知道叫 TUI 啊。问的就是 TUI 算不算 GUI。
能用鼠标,有菜单,有状态栏,有快捷键,有滚动条,有对话框,除了窗口用字符线而不是像素画以外,其他都一样。所以你们心目中 TUI 算不算 GUI。 |
46
cnsoloer 2018-11-16 16:52:15 +08:00
我有朋友是用 emacs 写项目,用的还挺溜的。巧的是他还改过 nginx 源代码。
|
48
Mush 2018-11-17 01:19:52 +08:00
我, Python, ssh 到服务器写
|
49
razerhell 2018-11-17 08:58:19 +08:00
您好,有的。之前在某外企实习,带我的暴躁老哥就是全程 ssh 到远方的服务器上 vim 编码。
|
50
meowoo 2018-11-17 16:54:45 +08:00
我就是用 vim 的,不过项目不太大,2w 行以下
|
51
lance6716 2018-11-19 10:27:18 +08:00
vim 好用的是 f di" ;。Ctrl-O 之类的吧,上面说的个人感觉其实并不是很高效……
|
52
ensonmj 2018-11-19 23:49:45 +08:00
vim 写代码,grep 看代码
|