TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Unix as IDE (2012)

142 点作者 lrsjng大约 5 年前

16 条评论

ohthehugemanate大约 5 年前
I&#x27;m a terminal jockey and an i3 junkie, and for a long time vim+extensions+Unix tools were my IDE too... but ultimately there is a difference between a powerful editor used like an IDE, and an actual IDE. there are lots of features which get first class.attention in an IDE, which were just kludgy hacks in my beloved vim... and some that simply weren&#x27;t possible.<p>For example, VSCode Remote container development. The IDE is split into client and server portions, with the server living in a container (or group of containers) of your definition. So your host environment is clean, but you still get tools that are a PITA or impossible to run remotely, like certain debuggers or linters. And best of all, the configuration is saved in the repo. Commit it, and everyone in your project gets a &quot;one button option&quot; to use the same developent environment as everyone else.<p>It&#x27;s not IMPOSSIBLE to do something similar with vim+Unix. Docker compose and enough automation will get you most of the way there. But not without a tremendous amount of work and time spent maintaining it for everyone&#x27;s unique environment. And certainly not in a fashion that i could call &quot;one button&quot;.<p>There are a few features like that. So I stopped spending hours (and hours and hours) maintaining a collection of hacks that approximated a modern development environment, and started using software for what it was designed to do. Vim is still my superpowered editor of choice, but when i&#x27;m working on a significant codebase, I use an IDE.
评论 #22442196 未加载
评论 #22443098 未加载
评论 #22441418 未加载
评论 #22442401 未加载
tombert大约 5 年前
I&#x27;ve gotten made fun of because I&#x27;ve said my &quot;IDE&quot; is `tmux` in the past; my typical development environment is a tmux split, where an editor (usually NeoVim, sometimes Emacs) does editing, and the bottom half is a terminal running either a dev server or just the compiler command.<p>It&#x27;s not perfect, but I like how I can basically swap any component out (except tmux itself).
评论 #22439731 未加载
评论 #22440764 未加载
评论 #22440330 未加载
评论 #22440750 未加载
评论 #22440685 未加载
评论 #22440847 未加载
评论 #22441751 未加载
评论 #22439547 未加载
socialdemocrat大约 5 年前
I don&#x27;t like either extremes. I quite hate working in big bloated IDEs. But I don&#x27;t like trying to accomplish everything at the terminal. I always use GUI and shell tools together.<p>My editor of choice TextMate is usually launched from the terminal. I work a lot in a REPL environment and when I get a stack backtrace my terminal program iTerm2 automatically identifies paths in the stack backtrace, so I can mouse click them and open in TextMate at the correct line.<p>I use a separate git GUI client called Tower a lot, but I also use the git command line. I mix and match a lot.<p>I really dislike monolithic tools. If you try to do absolutely everything from the CLI you get many of the same problems as in a IDE GUI: You get too much complexity in your interaction. Too many special keystrokes and commands to remember.<p>I quite like the old NeXT idea of an IDE, kind of how the old xCode was when interface builder was a separate program. As you integrate more tools complexity just grows.<p>We already have a multitasking OS with windows. We where meant to use multiple tools and not just sit in one big maximized monolithic program.
评论 #22440361 未加载
评论 #22441216 未加载
评论 #22439870 未加载
评论 #22440136 未加载
istjohn大约 5 年前
I recently discovered the &quot;watch&quot; command. With an autosave plugin in Vim, I can put some &quot;print()&quot; statements in my code and run &quot;watch python3 mycode.py&quot; in a small Tmux pane to get nearly instant feedback as I debug something. Or if I&#x27;m refactoring, I can do &quot;watch pytest&quot;. It&#x27;s pretty sweet.
评论 #22440996 未加载
评论 #22440692 未加载
评论 #22440622 未加载
pvg大约 5 年前
A few times previously:<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=12653028" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=12653028</a><p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=4105768" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=4105768</a><p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=3594098" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=3594098</a>
RcouF1uZ4gsC大约 5 年前
I think code completion is missing. Sure you can always try to grep your function call, but seeing the parameters and return type of a function you are calling as you are coding is really nice.<p>Also a real IDE does much better debugging. Using Visual Studio for debugging your program is much easier than using GDB, which is probably why the more Unix programmers use printf debugging rather than try to fire up GDB.
评论 #22439759 未加载
评论 #22439281 未加载
评论 #22439164 未加载
评论 #22439763 未加载
评论 #22439093 未加载
samsquire大约 5 年前
What is it about an IDE that you need?<p>a) The ability to do an end-to-end build with one click (we&#x27;ve lost that with cloud being part of the equation)<p>b) Guranteed buildability<p>c) Intellisense&#x2F;autocomplete<p>d) Widgets that can be moved into any which way.<p>I feel that we&#x27;re missing a trick with CI&#x2F;CD if IDEs can do a end-to-end build with one click, there&#x27;s some technology to be shared or extracted here from desktop IDEs.
评论 #22439846 未加载
评论 #22439733 未加载
评论 #22442211 未加载
评论 #22439634 未加载
评论 #22439589 未加载
评论 #22443234 未加载
saagarjha大约 5 年前
&gt; Some of the principles discussed here will be applicable to those using Emacs as well, but probably not for underpowered editors like Nano.<p>Nano actually can do well over half of the things mentioned…
评论 #22440722 未加载
peter_d_sherman大约 5 年前
Excerpt:<p>How is UNIX an IDE?<p>&quot;The primary rationale for using an IDE is that it gathers all your tools in the same place, and you can use them in concert with roughly the same user interface paradigm, and without having to exert too much effort to make separate applications cooperate. The reason this becomes especially desirable with GUI applications is because it’s <i>very difficult to make windowed applications speak a common language or work well with each other; aside from cutting and pasting text, they don’t share a common interface.</i><p>The interesting thing about this problem for shell users is that well-designed and enduring Unix tools already share a common user interface in <i>streams of text and files as persistent objects, otherwise expressed in the axiom “everything’s a file”.</i><p>Pretty much everything in Unix is built around these two concepts, and it’s this common user interface, coupled with a forty-year history of high-powered tools whose users and developers have especially prized interoperability, that goes a long way to making Unix as powerful as a full-blown IDE.&quot;
samsquire大约 5 年前
I think the desktop can be an IDE.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;samsquire&#x2F;ideas#98-the-desktop-is-an-integrated-development-environment" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;samsquire&#x2F;ideas#98-the-desktop-is-an-inte...</a>
simonblack大约 5 年前
I don&#x27;t muck about with having to use tabs or maybe keycodes to change the current view(s) of a terminal&#x2F;xterm.<p>I simply open sufficient xterms on one or more virtual desktops to cover all of my needs.<p>Ferinstance: I can have the warnings and errors of the last compile displaying in one xterm, I can be editing the relevant xxx.c source file in a second xterm, the associated yyy.h header file being edited in a third xterm, and the man page for a library function showing in yet another fourth xterm.<p>All of them immediately visible, and all of them interactive.<p>Unix as IDE &#x27;just works&#x27; for me.
fourmyle大约 5 年前
IntelliJ Editors just straight up not working on Wayland right now has driven me insane. I really like Sway (i3) and Wayland is a must for mixed DPI setups. Now I have started using Kakoune and LSP for Go and Python and it works great. I tried Neovim for a while but having another window manager inside of Sway is too much of a burden. Kakoune opens new windows in Sway (or tmux). Combined with a plugin to make Firefox open tabs in a new window always I found my dream setup.
评论 #22440101 未加载
luord大约 5 年前
I only started using vim constantly around a year ago because I wanted to get used to it in case I needed it. Now I only use the shell for development and haven&#x27;t touched an IDE or graphical text editor in months.<p>This is a treasure trove, there are quite a few tools I wasn&#x27;t aware of that I shall start using consistently now.
superkuh大约 5 年前
I go further. Unix is my IDE and my CMS for my website.
archarios大约 5 年前
anyone figure out how to do this with Java though? Seems more feasible for C or Go but not all..
评论 #22440014 未加载
fit2rule大约 5 年前
Rule #1: Use all the Things.<p>Rule #2: vim is all you need.