1 điểm bởi GN⁺ 3 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Emacs chỉ được một nhóm người dùng nhất định sử dụng, nên hiếm khi xuất hiện trong phim ảnh, TV, truyện tranh, anime và phim tài liệu. Vì vậy đây là danh sách tổng hợp các lần xuất hiện đó
  • Trong các phim năm 2010 như The Social Network, Tron: Legacy, và Arctic Blast, Emacs lần lượt xuất hiện qua việc viết script Perl, kết thúc tiến trình bằng eshell, và màn hình mã Emacs Lisp
  • Silicon ValleyThe Internship dùng lựa chọn giữa Vim và Emacs như chất liệu đùa vui và xung đột trong văn hóa lập trình viên, đồng thời gắn với tranh cãi về kiểu thụt lề và trình soạn thảo mặc định
  • Trong manga và anime Nhật Bản, series Netflix của Đức, và miniseries của Hulu, Emacs Lisp, .emacs, câu hỏi phân biệt Vi/Emacs, và các câu đùa về phím tắt được gắn với những nhân vật hacker
  • Nếu tính cả các nhắc đến bằng văn bản, danh sách còn nối dài tới xkcd, The Cuckoo’s Egg, các tác phẩm của Neal Stephenson, và danh sách những người dùng Emacs nổi tiếng, cho thấy Emacs lặp đi lặp lại như một biểu tượng lâu đời của văn hóa lập trình viên

Khái quát

  • Emacs là một trình soạn thảo văn bản ngách, không thường thấy trong văn hóa đại chúng, nhưng vẫn xuất hiện trong phim, series TV, truyện tranh và manga dưới dạng công cụ trên màn hình hoặc lời thoại
  • Danh sách trong bài là tập hợp các trường hợp được biết đến tính đến tháng 6 năm 2026, chủ yếu xoay quanh các ví dụ trong phim, TV, truyện tranh và manga có thể nhìn thấy trực tiếp trên màn hình
  • Các trường hợp chỉ được nhắc đến trong sách và những ám chỉ gián tiếp khác được tách riêng dưới mục Honorable mentions

Phim năm 2010, The Social Network

  • The Social Network là phim chính kịch tiểu sử về quá trình thành lập Facebook
  • Khi Zuckerberg thời trẻ cào ảnh từ ký túc xá Harvard để làm Facemash, anh chạy Emacs và viết một script Perl để crawl website Leverett House
  • Trong cảnh này, Zuckerberg nói đại ý rằng “không thể lật từng trang trong 500 trang để tải ảnh xuống, nên phải mở Emacs và sửa script Perl”

Phim năm 2010, Tron: Legacy

  • Tron: Legacy là phim khoa học viễn tưởng ra mắt năm 2010 và là phần thứ hai của loạt Tron
  • Trong cảnh đầu phim, Edward Dillinger Jr. chạy eshell của Emacs để grep rồi kết thúc tiến trình hệ thống mà Sam Flynn đã khởi chạy nhằm tấn công OS 12 mới của ENCOM
  • Lấy cảm hứng từ cảnh này, một chủ đề màu Emacs dựa trên bảng màu của Tron: Legacy đã được tạo ra, và kho mã của nó đã vượt quá 200 sao trên GitHub

Phim năm 2010, Arctic Blast

  • Arctic Blast là phim thảm họa khoa học viễn tưởng do Australia và Canada đồng sản xuất
  • Ở khoảng mốc 20 phút 30 giây, hai nhà khoa học Jack và Zoe cố gắng khôi phục ảnh vệ tinh từ một ổ cứng bị đóng băng
  • Trên màn hình máy tính, mã Emacs Lisp lướt qua trong chốc lát, và Jack nói rằng phần lớn tệp đã bị hỏng
  • ;;;###autoload, interactive, và save-excursion có thể được nhận ra là cú pháp Emacs Lisp
  • Chương trình Elisp trên màn hình là mã nguồn module xml-parse do John Wiegley viết năm 2001

2014-2019 HBO, Silicon Valley

  • Silicon Valley là series hài châm biếm văn hóa ngành công nghệ, xoay quanh cuộc sống của kỹ sư phần mềm, gọi vốn VC, và cuộc đối đầu giữa startup với các tập đoàn lớn
  • Trong mùa 3 tập 6, Richard và Winnie xung đột khi đang lập trình vì chuyện dùng dấu cách hay tab
    • Richard khăng khăng dùng ký tự tab để thụt lề và nói đại ý rằng “tôi không hiểu sao lại dùng dấu cách thay vì tab, cũng như không hiểu sao lại dùng Vim thay vì Emacs”
    • Winnie đáp rằng “Tôi dùng Vim chứ không dùng Emacs”, và Richard hét lên “Oh, God help us!”
  • Đây là một ví dụ chèn ngắn editor war vào giữa cuộc chiến về kiểu thụt lề
  • Trong mùa 4 tập 2, trên những tờ giấy note màu vàng ở cảnh nhóm Pied Piper brainstorm ý tưởng tính năng sản phẩm có thể thấy Emacs keybindings
    • Các phím tắt Emacs là chế độ chỉnh sửa dòng mặc định của những shell như bash và zsh, và macOS cũng hỗ trợ nhiều tổ hợp như C-a, C-e, C-k trên nhiều trường nhập văn bản

1992-1993 DC Comics, The Hacker Files

  • The Hacker Files là miniseries truyện tranh DC gồm 12 số, kể về một hacker tự do phanh phui âm mưu đa quốc gia và đánh sập các tập đoàn xấu xa
  • Trong số đầu tiên, nhân vật chính Jack Marshall chỉnh sửa tệp mã nguồn bằng Emacs để chống lại một virus máy tính
  • Trong truyện không thấy giao diện người dùng của trình soạn thảo, chỉ xuất hiện lệnh emacs cure.c

2013-2019 manga, Ōsama-tachi no Viking

  • Ōsama-tachi no Viking là series manga Nhật Bản về một hacker trung học hợp tác với một nhà đầu tư thiên thần giàu có để thay đổi trật tự thế giới
  • Trong một trang truyện, hacker phản diện dùng Emacs Lisp để khai thác camera an ninh
  • Mã trên màn hình có thể trông như Lisp thông thường, nhưng pcaseseq-map là các cấu trúc riêng của Emacs
    • pcase đến từ pcase.el và là một phần của Emacs từ phiên bản 24.1
    • seq-map đến từ seq.el và là một phần của Emacs từ phiên bản 25.1
  • Xét về hiệu năng thực thi, seq-map có thể không được ưa chuộng bằng mapcar hay cl-map, nhưng trong một script hack chớp nhoáng thì điều quan trọng là nó chạy được, hơn là tối ưu vi mô

1994-1996 OVA, Key the Metal Idol

  • Key the Metal Idol là series anime Nhật Bản thập niên 1990, theo chân cô gái robot Tokiko “Key” Mima
  • Tác phẩm được xem là một chính kịch khá u tối có yếu tố mecha và khoa học viễn tưởng
  • Trong tập 9 Return, nhân vật bí ẩn “D” bị nhốt trong một phòng giam chỉ có terminal máy tính
  • Ở cảnh cận, khi D nhấn phím Return, mã Emacs Lisp bắt đầu cuộn trên màn hình terminal
  • save-excursionset-buffer là các từ khóa chỉ có trong Emacs Lisp, nên có thể phân biệt với các biến thể Lisp khác

Phim năm 2013, The Internship

  • The Internship là phim hài về hai nhân viên bán hàng ngoài 40 tuổi cạnh tranh suốt mùa hè với các ứng viên trẻ hơn và giỏi công nghệ hơn để giành việc tại Google
  • Dù có nhiều điểm không chính xác trong cách mô tả đời sống kỹ sư phần mềm thực tế ở Google, phim vẫn được xem là một tác phẩm giải trí nhẹ nhàng
  • Trong lúc một lãnh đạo Google thuyết trình, Nick Campbell hỏi “vì sao Ubuntu không dùng Emacs thay vì Vi làm trình soạn thảo mặc định”
  • Vị lãnh đạo đáp rằng đó là “một ý tưởng rất hay”, và slide thuyết trình trong cảnh này so sánh độ phổ biến của các trình soạn thảo mã nguồn

2014-2015 anime, Aldnoah.Zero

  • Trong tập 5 của anime khoa học viễn tưởng Nhật Bản Aldnoah.Zero, Emacs và Emacs Lisp xuất hiện thoáng qua giữa trận chiến của hai mecha
  • Ở góc dưới bên phải màn hình, có vẻ như một phi công đang debug sự cố với tệp khởi tạo .emacs
  • Việc sao lưu tệp khởi tạo .emacs rồi bắt đầu lại từ đầu gắn với khái niệm .emacs bankruptcy
  • Sau đó trên màn hình còn xuất hiện một đoạn Emacs Lisp với các từ khóa như progn, insert, beginning-of-line, forward-char

Phim tài liệu năm 2017, AlphaGo

  • AlphaGo - The Movie là phim tài liệu đoạt giải kể về quá trình AlphaGo do Google DeepMind phát triển học chơi cờ vây bằng AI và đấu với kỳ thủ hàng đầu Lee Sedol
  • Trong cảnh mở đầu giải thích mạng nơ-ron là gì, có thể thấy màn hình desktop Ubuntu với một kỹ sư phần mềm đang viết Lua trong Emacs
  • Kỹ sư này dường như đang dùng TUI Emacs trong Tmux bên trong Gnome Terminal
  • Màn hình trông như đang dùng ứng dụng terminal mặc định của Ubuntu, phông chữ Ubuntu Mono mặc định và giao diện tối mặc định của GNU Emacs
  • Màu nền được đặt là nil, nên nền tím của terminal hiện ra nguyên vẹn

2019-2025 series Netflix, How to Sell Drugs Online (Fast)

  • Trong mùa 2 tập 1 của series Netflix Đức How to Sell Drugs Online (Fast), xuất hiện Kira, một người ủng hộ Emacs và có kỹ năng hack rất giỏi
  • Kira đùa rằng Vi có hai chế độ: “liên tục kêu bíp bíp” và “phá hỏng mọi thứ”
  • Người hẹn hò của cô, Lenny, đáp trả đại ý rằng Emacs chỉ hơn cho đến khi tay bạn rụng ra vì bấm phím tắt
  • Sau đó Lenny bị ném khoai tây chiên vào mặt
  • Đây là một cảnh mà người dùng Vi và người dùng Emacs trêu chọc nhau về các phím tắt mặc định của Emacs

Miniseries Hulu năm 2023, A Murder at the End of the World

  • A Murder at the End of the World là miniseries TV mang màu sắc bí ẩn giết người và tâm lý giật gân
  • Trong một cảnh, nhân vật chính Darby Hart bất ngờ hỏi một phụ nữ rằng “Vi hay Emacs?”
  • Mục đích của câu hỏi là xem người kia có phản ứng rõ rệt hay không; nếu không có phản ứng thì khả năng cao là không phải hacker
  • GIF liên quan được lấy từ bài viết Are you Vi or Emacs? của Xenodium

Phim Ba Lan năm 2002, Haker

  • Haker là phim hài Ba Lan về hai người bạn học sinh trung học cùng chia sẻ niềm đam mê hack rồi bị cuốn vào chuyện với các tay gangster thật sự
  • Khi một nhân vật gặp khó khăn trong việc vượt qua tường lửa, nhân vật khác gợi ý đại ý rằng “đã thử Emacs qua sendmail chưa?”
  • Emacs có thể gửi thư qua sendmail, nhưng đó là gửi email chứ không phải kỹ thuật xuyên thủng tường lửa
  • Sendmail trong lịch sử có tiếng là dễ có lỗ hổng, và cũng có khả năng phụ đề tiếng Anh của lời thoại gốc bằng tiếng Ba Lan đã dịch chưa chính xác
  • Cách nói “hack bằng Emacs và email” nghe có vẻ phi thực tế, nhưng lại có liên hệ với lịch sử có thật như trường hợp trong The Cuckoo’s Egg

Honorable mentions

  • xkcd #378, Real Programmers là truyện tranh nổi tiếng với câu “lập trình viên đích thực dùng bướm để lật bit trên đĩa”, và kết lại bằng câu “tất nhiên Emacs có lệnh làm việc đó… cú pháp cũ tốt đẹp C-x M-c M-butterfly
    • Sau đó Emacs thực sự thêm lệnh M-x butterfly như một easter egg dành cho truyện tranh này
  • Clifford Stoll, The Cuckoo’s Egg (1989) là ghi chép ngôi thứ nhất về việc truy vết một hacker đã xâm nhập vào Lawrence Berkeley Lab
    • Hacker đã khai thác lỗ hổng bảo mật trong hàm movemail của GNU Emacs để giành quyền truy cập superuser
    • movemail chạy với quyền root và có thể bị lừa để ghi đè các tệp hệ thống được bảo vệ
  • Neal Stephenson, In the Beginning… Was the Command Line (1999) nhắc đến Emacs bằng một đoạn văn đầy thiện cảm, dùng các cách diễn đạt như “bộ xử lý văn bản nhiệt hạch” và “áp đảo các phần mềm soạn thảo khác như mặt trời giữa trưa làm lu mờ các vì sao”
  • Neal Stephenson, Cryptonomicon (1999) có nhân vật Randy Waterhouse sử dụng Ordoemacs
    • Ordoemacs là một phiên bản sửa đổi của Emacs, mã hóa mọi tệp trước khi ghi ra đĩa
  • Danh sách những người dùng Emacs nổi tiếng gồm Donald Knuth, Guido van Rossum, Yukihiro Matsumoto, Simon Peyton Jones, Jeff Dean, Jonathan Blow, Julian Assange, Linus Torvalds và nhiều người khác
    • Linus Torvalds được phân biệt là dùng micro-emacs chứ không phải GNU Emacs

1 bình luận

 
Ý kiến trên Hacker News
  • Tiểu thuyết The Idiot năm 2017 của Elif Batuman có một nữ sinh Harvard ngây thơ và người bạn trai mập mờ tên Ivan, trong đó Ivan, một sinh viên toán, nhiệt tình giải thích về Emacs
    Bối cảnh là năm 1995, và cuốn sách rất thú vị. Nó cũng được đánh giá cao và từng vào chung kết Pulitzer Prize

    • Đúng vậy, đó là một cuốn sách hay. Nếu tôi nhớ không nhầm thì Ivan đang mới học Emacs, nên có phần bối rối và hơi bực bội, nghe khá chân thực
  • Điều buồn cười là ảnh chụp màn hình của Arctic Blast trông như Emacs được chồng lên trình biên tập âm thanh Audacity
    https://ianyepan.github.io/images/arctic-blast-emacs.png

  • Một trường hợp tương tự là Nmap In The Movies
    https://nmap.org/movies/

  • How to Sell Drugs Online Fast là một bộ phim tuyệt vời vì cứ liên tục nhấn mạnh rằng các bài test frontend Vue phải pass
    Mỗi khi code xuất hiện trong phim hay chương trình truyền hình, tôi luôn tự hỏi nó có thật không, nhưng đa phần thường là trộn lẫn nhiều ngôn ngữ hoặc chỉ là nói nhảm. Bộ Nirvana 1997 mà tôi xem gần đây cũng khá hay

    • Cảnh T-800 HUD trong Terminator đầu tiên đã dùng mã assembly 6502 từ tạp chí Nibble
      https://www.theterminatorfans.com/the-terminator-vision-hud-...
    • Tôi cũng nhớ đến cảnh Kelly Rowland nhắn tin cho Nelly bằng Excel
      https://www.reddit.com/r/popculturechat/comments/1b8xawt/kel...
    • Nếu tôi nhớ đúng thì mã Replicator trong Star Gate là HTML/JS của Royal Bank of Canada
      Đa số được quay ở Canada nên cũng hợp lý
    • Trong Superman III, cảnh nhân vật của Richard Pryor tạo ra một chương trình “bất khả thi” là một trong những khoảnh khắc code trên màn hình tuyệt vời nhất
      Khi danh sách mã hiện lên màn hình, thực chất gần như chỉ là các câu lệnh BASIC REM kéo dài khoảng năm màn hình. Bộ phim này cũng gần như tồn tại chỉ để đặt nền cho một câu đùa trong Office Space
    • Tôi đã dừng lại xem nhiều lần nhưng quên mất chi tiết, tuy vậy nhìn chung code lúc nào cũng có vẻ đáng tin
      Tôi đặc biệt thích cảnh họ ghi chú các ý tưởng về website, như PGP hay onion service. Cảnh nhận ra Lenny là người viết code cũng hay, vì anh ta là người duy nhất trên đời dùng snake_case trong JavaScript. Tôi cũng là một kẻ dị giáo snake_case nên càng thấy đồng cảm
  • Cryptonomicon có một bản Emacs được tùy biến rất sâu tên là OrdoEmacs
    https://dev.to/hyenast2/neal-stephenson-s-cryptonomicon-and-...

    • Trong sách có một script Perl để mã hóa/giải mã
      Tôi nhớ mình từng tự gõ lại, sửa nó và làm cho nó chạy được
    • Enoch không chỉ chạy mọi thứ bằng root mà còn có tài khoản trên hệ thống của tôi và của bạn nữa
      Chỉ là có vẻ như ông ấy đã ở đó từ trước rồi
  • Tôi đã bỏ Emacs để chuyển sang VSCode vài năm trước, nhưng đọc bài này lại khiến tôi tự hỏi liệu có điên không nếu lại lôi cả đàn yak đã cạo lông ra để thử phát triển TypeScript bằng Emacs
    Vào thời điểm tôi chuyển sang VSCode, trải nghiệm TypeScript trên Emacs thực sự rất tệ, còn làm TS trên VSCode thì như một sự khai sáng. Chắc từ sau 2018 hay 2019, Emacs cũng đã có một giải pháp TS đủ tính quyết định rồi chứ?

    • Có lẽ là vậy. Hãy dùng TypeScript mode tích hợp sẵn và kết nối với tsc qua eglot, trình khách LSP tích hợp sẵn
      Nó hoạt động tốt. Các chuyên gia frontend có thể sẽ nghĩ khác
  • Danh sách này khá thú vị, nhưng tôi không chắc có nên xem phim tài liệu AlphaGo là văn hóa đại chúng hay không
    Cách mọi người nói về vi so với Emacs cũng khá thú vị. Tôi không nhớ từng gặp ai chọn vi thay vì vim, và càng chưa thấy đủ nhiều người như vậy để cuộc tranh luận đó thực sự thành hình

    • Rất vui được gặp. Có một người như vậy đây
      Tôi dành phần lớn thời gian phát triển trên console trong *BSD, và ở đó tôi đã gắn bó với nvi. Những tiện ích mặc định của vim làm tôi thấy vướng, phải chỉnh cho nó yên tĩnh hơn, và tôi cũng không biết tính năng vim nào đủ hấp dẫn để khiến tôi thấy nvi là không đủ. Tôi vẫn cài vim, nhưng đó không phải lựa chọn mặc định
    • Đó là vì vim thường cung cấp mọi thứ mà vi có
      Dù vậy, vi vẫn có ưu điểm riêng. Nó nhẹ hơn rất nhiều. vim nặng khoảng 5.4MiB và có 82 phụ thuộc thư viện dùng chung, trong khi vi[1] chỉ khoảng 260KiB và chỉ có 2 phụ thuộc thư viện là libc và ncurses
      [1] https://ex-vi.sourceforge.net/
    • Với tư cách quản trị hệ thống, đa phần tôi chỉ cần mở nhanh, sửa rồi đóng, nên tôi thích vi cơ bản hơn
      Tôi không cần màu mè sặc sỡ. Trên Debian/Ubuntu, tôi nghiêng về vim.tiny hơn là vim.basic
  • Có một bộ phim Ba Lan hiếm năm 2002 tên là Haker, bị chôn vùi vì nhiều lý do, và không phải theo nghĩa tốt
    Nó không phải kiểu phim hạng B buồn cười ngoài ý muốn theo phong cách MST3K, mà chỉ thực sự tệ. Trong viên ngọc quý này có một đoạn hội thoại về việc hack vào một hệ thống, nơi một nhân vật hỏi câu nửa chuyên môn hoàn toàn vô nghĩa: “Anh đã thử Emacs qua Sendmail chưa?” Đây không phải trò đùa. Cụm này đã trở thành một cách nói cố định trong giới kỹ thuật Ba Lan để chỉ hoặc mỉa mai những người hoàn toàn không biết mình đang nói gì

    • Cụm đó làm tôi nhớ đến một meme cũ của Nga: “Làm sao để patch KDE2 trên FreeBSD?”
    • Kể cả với Emacs qua Sendmail cũng không thể vượt qua tường lửa kép
    • Ở Mỹ cũng có một cách nói tương tự, xuất phát từ truyện tranh Dilbert
      Cảnh ông sếp bảo đi điều tra cơ sở dữ liệu rồi gợi ý rằng “mauve has more RAM
    • Nó cũng có trong bài gốc kèm ảnh chụp màn hình
    • Tôi thích ý tưởng một shibboleth chỉ dân mọt mới nhận ra
  • Tôi nuôi một con mèo tên là Emacs

    • Giờ bạn cần thêm một con chó tên Vim, một con chim tên Nano, và một cô bạn gái gothic tên Kakoune
  • Deldo - Vibration Control and Teledildonics Mode for Emacs
    https://www.youtube.com/watch?v=D1sXuHnf_lo
    Interview with an Emacs Enthusiast [Colorized]
    https://www.youtube.com/watch?v=urcL86UpqZc
    Writing an Emacs implementation in C (Gosling Emacs) | James Gosling and Lex Fridman
    https://www.youtube.com/watch?v=wA7aB-oxjVc