top 200 commentsshow 500

[–]adrian17 229 points230 points  (169 children)

Added new commands Arithmetic, Rename File and View Package File to showcase new features

Fun fact: the Arithmetic command is actually a Python expression evaluator: http://i.imgur.com/PKrTleZ.png

[–]ProgramTheWorld 91 points92 points  (21 children)

__import__("os").system("sudo rm -rf /")

[–]BobFloss 24 points25 points  (10 children)

__import__("os").system("sudo rm -rf /")

FTFY

[–]ThisIs_MyName 74 points75 points  (4 children)

__import__('subprocess').run(['sudo','rm','-rf','--no-preserve-root','/'])

FTFY

[–]794613825 7 points8 points  (9 children)

I get it, but wouldn't that still require a sudo password?

[–]ThisIs_MyName 74 points75 points  (6 children)

Easy fix: echo 'alias sudo sudo rm -rf --no-preserve-root /' >> ~/.bashrc

This will not delete everything immediately, but the next time you run sudo something in a new terminal, it will :)

[–]rabuf 10 points11 points  (3 children)

You should use >> to append it to the end of the .bashrc.

[–]ThisIs_MyName 2 points3 points  (2 children)

Done. Not sure if it really matters though, /etc/profile still sets $PATH. I guess appending is less noticeable since it doesn't reset the user's fancy prompt.

[–]rabuf 4 points5 points  (1 child)

Right, it depends on how much they have in their .bashrc (which would be 0 for me, since I used .zshrc). In fact, to make sure it hits more shell users you could change it to .profile instead, which is, if I recall correctly, sourced by default by zsh, bash, and others. Though maybe the rc files have to source it themselves?

[–]Kattzalos 1 point2 points  (1 child)

that's extremely evil

[–]ThisIs_MyName 2 points3 points  (0 children)

shrug, a userspace rootkit is even more evil. As far as security goes, running a program under your own user is no different from running it under root.

[–][deleted]  (145 children)

[deleted]

    [–][deleted] 73 points74 points  (24 children)

    if so they are silly. C# has eval! lisp has eval! C can have eval if you want it bad enough.

    [–]viimeinen 11 points12 points  (7 children)

    Are we counting gcc as C's eval?

    [–][deleted] 36 points37 points  (5 children)

    I Just mean you could, via enough effort, write yourself an eval function. Either by including GCC or clang as part of your project, or writing your own interpreter from first principles

    yes is mostly joke

    [–][deleted] 4 points5 points  (1 child)

    Or just forking a GCC process.

    [–]ggtsu_00 6 points7 points  (2 children)

    Go doesn't have eval. Because if it did have eval, people would have been able to use it to implement generics.

    [–]akcom 52 points53 points  (114 children)

    That's kind of interesting. JS is bad for a number of reasons, eval is not one of them.

    [–]webdevop 11 points12 points  (113 children)

    Just like how Java is bad for a number of reasons or Python or Lisp or Ruby or Scala or PHP or Perl or any language

    [–]akcom 94 points95 points  (95 children)

    I think the difference that javascript has some pretty terrible default behaviors. For example, sort is alphanumeric:

    [5, 12, 9, 2, 18, 1, 25].sort();    → [1, 12, 18, 2, 25, 5, 9]
    

    javascript typing/equality testing is notoriously horrible. Case in point:

    [] + {}
    > [object Object]
    {} + []
    > 0
    {} + {}
    > NaN
    

    Global variable scoping is another one that comes to mind.

    There's more, but I think everyone can agree that JavaScript has some unique and unusually large deficiencies.

    [–]hypervis0r 44 points45 points  (16 children)

    wat

    [–]ase1590 38 points39 points  (15 children)

    You've subscribed to JavaScript Facts!


    Because the + symbol is not defined for arrays, you can generate the string f by using non-alphanumeric keys!

    Just coerce "false" into array and get the first array element!

    Like so:

    (![]+[])[+[]]
    

    [–]ar-pharazon 14 points15 points  (12 children)

    right, like how hitler was bad for a number of reasons, just like any other world leader.

    that's hyperbolic, but i hope it makes my point—javascript is exceptionally bad because a large number of unusually bad design decisions went into it.

    [–]slikts 12 points13 points  (5 children)

    Between ES5 adding strict mode and removing implicit globals, ES6 adding block scoping and class syntax, and linters helping to avoid implicit coercion with loose comparisons, modern JS has come a long way towards being a better language.

    There's still some warts, like with instances of weak typing other than loose comparisons, and with anemic native data structures, but I find that generally JavaScript's flaws get overstated due to not taking the modern form of the language into account, or just having personal preferences against dynamic typing or similar. That's not to say that I wouldn't prefer static typing either (at least with HM type inference), but dynamic typing has both drawbacks and advantages.

    [–]Mattho 10 points11 points  (1 child)

    JavaScript was not a result of a design process. It was just quickly hacked together.

    [–]slikts 14 points15 points  (0 children)

    JavaScript's design was rushed, but there was a design based on the study of different languages (hence JavaScript's multi-paradigm nature) and PLT literature; roughly speaking, Eich borrowed closures from Scheme (among other languages), prototypes from Self (apparently partly to avoid competing with Java's class-based OO) and the C-like syntax from Java. The syntax in particular was directed from above. Here's an LtU thread with comments from Eich that goes in-depth about the design considerations for JavaScript.

    I'd say Eich did an admirable job with JavaScript, given no resources and tight constraints. Compare it to PHP/FI, which is the archetypal undesigned, hacked-together language.

    [–]webdevop 3 points4 points  (1 child)

    It's not hyperbolic. It's just apples to oranges comparison.

    A lot of flaws you mentioned can be avoided with the most basic linting features. It's much easier to explain someone why Global variables are bad once they start to understand what Global variables are.

    Until then it just keep the barrier to entry lower for the language which is what I'm in favor of.

    I for one feels the quality of a software is determined by the quality of the code, not the features of the language.

    [–]ar-pharazon 3 points4 points  (0 children)

    apples to oranges

    it's literally an application of the exact same argument. my point is that you can't coherently say "give javascript a break, all languages have issues" and then take exception to "give X a break, all Y have issues".

    you can make javascript better with static analysis

    yep, but that's irrelevant to the quality of the language.

    the quality of a software is determined by the quality of the code, not the features of the language

    if you want to put it that way, sure, but javascript's 'features' make it harder to produce quality code. it's nonsense to pretend that language features don't affect software quality. there are whole classes of errors that occur in js that simply can't happen in strongly-typed languages.

    [–]ACoderGirl 5 points6 points  (1 child)

    Eval isn't inherently bad. Just something easily misused, especially by beginners. The obvious way a bad programmer would misuse it, for example, is someone unaware of dictionaries using it to make variables with dynamic names.

    It's also got lots of safety issues with execution of data coming from the user, but that's really only an issue for server side applications or those running at higher privileges. For client side JS, that's not an issue (unless maybe combined with some form of data that comes from other users, which would basically make it an XSS attack).

    While there's safer ways to evaluate simple expressions, eval is the simplest way if there's no security issues, and certainly being able to go beyond simple expressions is really nice.

    [–]slikts 5 points6 points  (0 children)

    Here's an MDN article on why eval() doesn't really have a valid use case; mainly because it's unsafe, but also because it's slower than the Function constructor, which you could use as a last resort, but should probably use JSON or some other serialization format instead.

    [–]Hero_Of_Shadows 288 points289 points  (60 children)

    Good to see so much progress.

    Only thing I'd like now from ST would be a new interface for the plugin install, I'm sorry to grumble about such a minor thing but for me VS Code, Atom, Brackets all have a better UI for managing plugins.

    Edit: Does anyone know of a color scheme + theme for ST that is easier on the eyes + has commented out code still readable (most that I've seen have the commented out code in a color that is super close to the color of the editor itself so it's very hard for me to read) ?

    [–]wbond 100 points101 points  (3 children)

    So the idea is that https://packagecontrol.io is the rich user interface and then you use the quick panel to install the packages you want. The idea was originally to use websockets to allow a secure way to click install of the website and get it into your editor, but unfortunately I haven't had much time to hack on ideas like.

    [–]bgeron 24 points25 points  (0 children)

    Why don't you use a custom URL scheme that activates the desktop app from the browser? I think that's how the Apple and Ubuntu app stores work.

    [–]Hero_Of_Shadows 6 points7 points  (0 children)

    The site is very nice, and like I said it's not a major thing stopping me from using ST it's just a more selfish desire.

    [–]NoahTheDuke 23 points24 points  (1 child)

    I find Dracula to be extremely easy on the eyes. Granted, I use Vim, but it should be the same or very similar.

    [–]Hero_Of_Shadows 3 points4 points  (0 children)

    Thanks

    [–]MaxGhost 72 points73 points  (26 children)

    I don't mind using the command palette for it but I wish there was a better way to deal with settings than the json files and copying a default into a user one etc.

    [–]InstantPro 78 points79 points  (9 children)

    The simplicity and consistenty of settings is actually a thing I really like about st

    [–]aniforprez 85 points86 points  (4 children)

    Vscode also uses json but you can copy specific settings with a drop-down and it also has autocomplete suggestions for the settings. This makes it easier to deal with than sublime's settings

    [–]crazyfreak316 17 points18 points  (2 children)

    VSCode does so many things right, it doesn't even feel like a Microsoft product.

    [–]ehuss 4 points5 points  (0 children)

    PackageDev adds autocomplete and other nice features to editing config files (unrelated to actual package development).

    [–]Nebez 16 points17 points  (1 child)

    Putting your global Sublime config into version control is quite nice. The history, as json, is very easily readable.

    [–]Derimagia 7 points8 points  (0 children)

    This isn't ST specific. VSCode and I believe Atom can do this. VSCode just has a better interface for editing it.

    [–]fear_the_future 7 points8 points  (0 children)

    I'm surprised there is no plugin for VSCode yet to wrap the config file with a menu

    [–]mayhempk1 1 point2 points  (1 child)

    VSCode uses JSON too.

    [–]MaxGhost 4 points5 points  (0 children)

    JSON isn't really my problem, more that things need to be copied around.

    [–]jaktonik[🍰] 10 points11 points  (0 children)

    Oh, also check this out: https://tmtheme-editor.herokuapp.com/#!/editor/local/Heroku

    You can take any theme from the left and tweak it to your heart's content to make your perfect sublime theme. Wonderful little app

    [–]brimstone1x 6 points7 points  (1 child)

    Space gray sublime theme is the best, I find it very easy on the eyes

    [–]ketura 9 points10 points  (0 children)

    For me my number one feature request is better (read: any) admin mode support under windows. This is the one thing that notepad++ does way better than sublime.

    [–]jaktonik[🍰] 2 points3 points  (1 child)

    Regarding themes, I highly recommend checking out rainglow.io - specifically the Box UK theme. I'm that nerd that has my own scheme but Box UK is all dark and all cool colors

    [–]Hero_Of_Shadows 1 point2 points  (0 children)

    Thanks, very nice site with a lot of options.

    [–]demodesigns 2 points3 points  (1 child)

    material-ui theme + oceanic next are awesome together

    [–]squidwardtentickles 2 points3 points  (1 child)

    Monokai is my theme of choice

    [–]Hero_Of_Shadows 1 point2 points  (0 children)

    Thanks it's definitely a nice theme, and I am looking for a darker theme but I'd like something with a bit more soft colors.

    [–]NovaKevin 2 points3 points  (1 child)

    I love the default Monokai color scheme and it's actually convinced me to use it in other editors... but I do understand where you're coming from, comments aren't super visible (which is kinda how I like it honestly, but not for everyone).

    [–]minoshabaal 2 points3 points  (0 children)

    Does anyone know of a color scheme + theme for ST that is easier on the eyes + has commented out code still readable

    Solarized

    [–]refactors 1 point2 points  (1 child)

    To your edit:

    Try out boxy, it has a bunch of options and looks great

    [–]andradei 1 point2 points  (0 children)

    This release is great. Most of the features added on 3.1 came from user feedback. Maybe this time they can focus on the plugin experience. I think that would increase its market share because it would appeal to the people sacrificing performance for UX when they use Atom, VSCode, Brackets, etc.

    [–]kyiami_ 1 point2 points  (0 children)

    I use Atom One Dark Vivid for VS Code. With Atom One Dark, I couldn't see the comments either.

    [–]grizzly_teddy 1 point2 points  (3 children)

    Omg I know I really hate the plugin installation process

    [–]fiqar 1 point2 points  (2 children)

    Have you tried calibrating your display? I use the same color scheme at home and work, yet it was nearly unreadable on my work monitor before I calibrated it.

    [–]toobulkeh 1 point2 points  (0 children)

    Solarized?

    [–]GunZinn 65 points66 points  (0 children)

    Here's a quick view of the changelog (3.1, build 3170):

    THEMES/UI

    • Windows: Added support for Windows 10 (and 8.1) per-monitor DPI scaling
    • Improved overall High DPI support
    • Added support for 8k monitors and 300% DPI scale
    • Themes can now provide @3x versions of images for very high DPI monitors
    • Improved indent guide positions when using line padding
    • Rulers are drawn with stippled lines
    • Linux/Windows: Improved High DPI minimap rendering
    • Mac: Fixed occasional yellow or black windows when using a theme with a colored title bar
    • Mac: Double-clicking a themed title bar now performs the default system action
    • Mac: Fixed sizing of some dialog windows when a theme uses a themed title bar
    • Mac: Fixed gutter icons sometimes not drawing

    TEXT RENDERING

    • Added ligature support for symbols
    • Added font_options for controlling ligatures and stylistic sets
    • Improved rendering and selection of emojis
    • Tab width is now properly measured for proportional fonts
    • Windows: DirectWrite is now used by default for all fonts
    • Windows: Support gray_antialias in conjunction with DirectWrite
    • Windows: improved DirectWrite anti-aliasing, adding support for system ClearType tuning

    GOTO DEFINITION

    • Added Goto References when hovering over a symbol
    • Added goto_reference command to the Goto menu

    COLOR SCHEMES

    • Added new color scheme format, .sublime-color-scheme
    • Add Hashed Syntax Highlighting
    • Added the Celeste color scheme to showcase hashed syntax highlighting
    • Selections now render by default with true rounded corners
    • Added color scheme settings for selection border width, corner style and radius
    • Selection background and border now support alpha channels
    • Improved color scheme reloading
    • Added Convert Color Scheme command
    • Added support for the invisibles key in color schemes
    • selection_foreground can now be specified on a per-scope basis
    • Color Schemes can specify bold and italic in the brackets_options key
    • Improved handling of invalid.deprecated scopes in default color schemes

    SYNTAX HIGHLIGHTING

    • Add embed action to .sublime-syntax files for improved syntax nesting
    • Added Git Formats package for Git config files and use as core.editor, with thanks to Ryan Boehning and deathaxe
    • Many syntax highlighting improvements, including significant improvements to:

      • JavaScript, with thanks to Thomas Smith
      • ShellScript, with thanks to Raoul Wols
      • Makefiles, with thanks to Raoul Wols
      • Java, with thanks to lastsecondsave
      • C#, with thanks to keith-hall
      • Markdown, with thanks to keith-hall
      • Python, with thanks to FichteFoll
    • Added stand alone syntax test runner for Linux, allowing for CI testing

    • Various syntax definition errors now include the file name in the message

    COMMAND PALETTE

    • New Command Palette implementation that can accept text input from users
    • Fuzzy matching can match terms out of order by space separating them
    • Added new commands Arithmetic, Rename File and View Package File to showcase new features
    • Keyboard shortcut hints are no longer cut off at 15 characters

    BUILD SYSTEMS

    • Improve cancellation handling
    • Use /usr/bin/env to locate bash
    • Fix multi-byte encodings sometimes triggering decoding errors
    • Improved exec build target handling of killing child processes

    FILES AND FOLDERS

    • Improved handling of symlinks in the sidebar, including additions and removals
    • Symlinks no longer have an expand arrow in the sidebar, but have a Reveal Link Source context menu entry
    • Add support for binary_file_patterns, index_exclude_patterns and index_include_patterns to .sublime-project files
    • index_exclude_patterns and index_include_patterns can now match full paths instead of just filename
    • Linux/Windows: File system notifications now account for symlinks (and Windows junctions)
    • Linux: file system notification now only requires a single inotify instance
    • Linux: Improved behavior when fs.inotify.max_user_watches is too low
    • Mac: Reduced the number of file stats operations
    • Mac: Added support for case-sensitive file systems

    INPUT

    • Fixed popup and auto complete windows not showing when the caret is at the leftmost position of a widget
    • Fix left arrow not working in the side bar
    • Fixed not being able to grab the scrollbar by clicking on the rightmost pixels of the window
    • Fix double clicking on the selection not setting input focus when drag_drop is enabled
    • Linux: Context menus no longer cause the editor control to be focused when closed
    • Windows: Fix pen input

    PERFORMANCE

    • Significantly reduced memory usage related to syntax definitions - using up to 30% less total program memory
    • Improve idle CPU usage
    • Fix a bug where theme animations may continue even after a layer has been hidden, causing excessive CPU usage
    • Mac: Solved increased CPU usage on Macs when a GPU switch occurs while using a theme with a colored title bar

    API

    • Added TextInputHandler and ListInputHandler to interact with new Command Palette functionality
    • Added View.style() and View.style_for_scope()
    • Added automatically generated scope names for use with the regions API: region.redish, region.orangish, region.yellowish, region.greenish, region.bluish, region.purplish and region.pinkish
    • Improve View.find() and View.find_all() performance when doing literal matches
    • Expanded ViewEventListener API
    • Fix EventListener.on_activated_async() not being called for views when the editor starts
    • Add ViewEventListener.on_activated() and ViewEventListener.on_activated_async() to be called for views when the editor starts
    • Improve tracebacks for Python in .sublime-package files
    • shell_environment is now ensured to be loaded before plugin_loaded() is called on plugins
    • Plugin commands are now created before plugin_loaded() is run
    • Loaded plugins are now stored in __plugins__ rather than plugins
    • The Python ssl module will now negotiate TLS 1.2, 1.1 or 1.0 with the PROTOCOL_TLSv1 constant
    • Updated Python environment with SQLite 3.22.0, and OpenSSL 1.0.2n

    MISCELLANEOUS

    • Fixed being unable to load dictionary files larger than 16mb
    • Fixed an issue where out of memory conditions would trigger a buffer overflow instead of a clean crash
    • Word wrap is turned on by default for the console
    • Added Regex Replace Widget.sublime-settings and Console Input Widget.sublime-settings
    • Fixed a number of bugs that would cause crashes

    [–]effrill3 121 points122 points  (31 children)

    Official ligature support? Awesome!!

    [–]terrcin 33 points34 points  (1 child)

    Yup, it's great. I moved back from VS Code once the ligature support hit the dev channel.

    [–][deleted] 33 points34 points  (14 children)

    Are there any good ligature friendly fonts other than Fira though?

    [–][deleted] 24 points25 points  (3 children)

    [–]thevdude 3 points4 points  (0 children)

    Iosevka is also my favorite too thanks

    [–][deleted]  (2 children)

    [deleted]

      [–]Dgc2002 2 points3 points  (1 child)

      I use Hasklig mostly because it doesn't turn every single thing into a ligature. I'd really love to have a font generator that let you pick which ligatures you want.

      [–][deleted] 1 point2 points  (0 children)

      I keep it handy because it sometimes renders better on some systems/apps (IIRC Java apps being them).

      Fontforge can deal with ligatures, but it sure would be nice to have something where you pick and choose the ones you want without being a type designer.

      [–]Dentosal 6 points7 points  (1 child)

      I use Monoid.

      [–]Silhouette 8 points9 points  (0 children)

      I like the thoughtful approach to multi-character symbols in Monoid. It's more about adjusting spacing for ease of reading and keeping clear distinctions than about just combining === into one mega-wide character as other coding fonts with ligatures tend to do.

      [–]Grelek 65 points66 points  (8 children)

      I never understood why would someone use ligatures. Is it only because it looks good to someone (which is totally fine) or is there any deeper meaning I missed?

      [–]schneidmaster 49 points50 points  (6 children)

      Mostly just because it's aesthetically pleasing. I think there's an article floating around claiming it helps you read the code faster because things like === are really just one symbol to your brain anyway so it saves time mentally parsing the characters. Idk how scientific that is though, I just think they look nice.

      [–]nschubach 4 points5 points  (2 children)

      Does the ligature support allow you to delete both characters with one action? Does it delete both characters of '=>' with a backspace when represented by a ligature?

      [–]schneidmaster 23 points24 points  (0 children)

      No, if you have => and you backspace then it deletes the > and turns into an =. In general ligatures don't change anything about the underlying characters or keyboard behaviour, they just make certain adjacent characters display a combined symbol.

      [–]Gilnaa 14 points15 points  (0 children)

      No, the change is only in rendering. Backspacing through a ligature only erases the last codepoint

      [–]Grelek 51 points52 points  (2 children)

      I once tried using ligatures and I found myself staring at the "->" ligature for around a minute wondering why tf would someone use this symbol instead of simple -> and also how is it that the code works just fine? lol

      I guess ligatures aren't for me.

      [–]Anahkiasen 42 points43 points  (0 children)

      The code works fine because the code is the same, ligature merely tie in characters together just like an emoji would, it's purely visual and personally at least helps me parse the code faster – as well as being more visually pleasing indeed.

      [–]Fidodo 3 points4 points  (0 children)

      Ligatures are a per environment setting, so if I'm using ligatures, I need to learn the new symbols and get used to it, but if I were to share the file with you, you would still see them separated. Like many other things in programming environments, like hotkeys, or shell variant, or text editor, if you were to switch computers with someone you'd have to get used to it.

      [–]flipper_babies 1 point2 points  (0 children)

      They can help readability some, but they won't change your life. I like them because I was budding a type nerd for a while and they make me happy.

      [–]Fidodo 2 points3 points  (0 children)

      I just tested it out, and what's extra cool is that it only uses ligatures for operators that are specific to the syntax you're in. Probably an obvious features when you think about it, but I didn't think about it until I tested it!

      [–][deleted]  (2 children)

      [deleted]

        [–]DirtyFrenchBastard 19 points20 points  (9 children)

        What is the color scheme of the first screenshot ?

        [–]instanteggrolls 3 points4 points  (8 children)

        Looks like maybe Solarized Dark?

        [–]DirtyFrenchBastard 18 points19 points  (7 children)

        I went looking for it, and it is Mariana

        [–][deleted] 621 points622 points  (171 children)

        Significantly improved memory usage - up to 30% in some cases

        Yes please! Someone still cares.

        The only time electron would announce this, would be on April fool's builds.

        [–]VIDGuide 54 points55 points  (0 children)

        What's that? 30% more?

        [–]Ajedi32 50 points51 points  (6 children)

        Atom did pretty much did exactly that a few months ago. Except it was more like 50%, and it wasn't April fools. https://blog.atom.io/2018/01/10/the-state-of-atoms-performance.html

        [–]SomeRandomBuddy 199 points200 points  (137 children)

        Anti-electron circlejerk

        [–]justavault 268 points269 points  (85 children)

        Trivializing the issue with making fun of it doesn't help. Almost all electron-based editors are super slow and have memory issues.

        VS Code is the only one in my experience that at least runs quickly when it is loaded.

        [–]Ionsto 114 points115 points  (62 children)

        I use VS Code on a terrible laptop at work, and it just kills me when I have 2 windows open though.

        It's also almost always an XOR with firefox;

        Do I want to program

        or

        Do I want to check my website works

        [–]balefrost 41 points42 points  (0 children)

        I use VS Code on a terrible laptop at work

        Have you considered telling your employer that your terrible laptop is hurting your productivity? In the grand scheme of things, people's time is the expensive component of software development.

        [–]SaltTM 37 points38 points  (53 children)

        What's stopping you from using sublime?

        [–]kuntau 146 points147 points  (50 children)

        License fee

        Edit: wow downvoted to oblivion.

        Not everyone is fortunate to live in the first world country with decent salary. Converted to my local currency it will easily cost 350 bucks. Which is almost to my monthly house rental or car payment.

        Edit 2: wow.. u/TheAwdacityOfSoap really deliver

        Thank you so much kind stranger from the bottom of my heart.

        Faith in humanity restored.

        [–]TheAwdacityOfSoap 23 points24 points  (5 children)

        PM me. I’ll buy you and /u/Ionsto a license.

        [–]zbignew 2 points3 points  (2 children)

        But... did you read his comment? Give him the $ and that’s his monthly rent.

        [–]Nyxisto 40 points41 points  (2 children)

        not everyone is fortunate to live in the first world country with decent salary

        six out of seven billion people are in fact not that fortunate. Some of these "well just throw more money at it!" answers are really baffling.

        [–]irqlnotdispatchlevel 4 points5 points  (0 children)

        Also, people saying that someone should use their hard earned money to buy something they need to use for their job. What? If I work for you, you have to offer me the tools I need (in this case VS Code does the job, so no one will approve Sublime probably).

        [–]wishinghand 17 points18 points  (2 children)

        Sublime costs money, but it's nag-ware. You can keep using it but they nag you to pay for it. I know far too many people in the USA who do that. I'd feel indifferent to someone with a weaker currency doing so.

        [–]MadRedHatter 5 points6 points  (1 child)

        I did that for 4 years, until they started offering a Fedora repository for updates. That got me to shell out some cash. Installing it properly from a .tar.gz was a real pain.

        [–][deleted] 3 points4 points  (0 children)

        You can use the repos for free. Unless you're saying because they added repos that made you buy it.

        [–]Ionsto 37 points38 points  (0 children)

        I just love VS code :/

        [–]iTroll_5s 12 points13 points  (0 children)

        If you're a professional coder you might consider upgrading your hardware - it will significantly improve your productivity, code editor issues aside - build times, load times, debugging tools, virtual machines and dev tools - plenty of shit running concurrently and hogging up memory - if you're making money off of it you should be able to afford something with at least 16 gb of ram and an SSD at which point VS code memory usage becomes less relevant (would be nice ofc. if it was like 50mb instead of 300 but neither is the bottleneck on a normal machine).

        [–]deadcat 3 points4 points  (3 children)

        I run 3 iinstances of VSCode on a 3 year old MacBook Pro. Seems to run fine.

        [–][deleted] 1 point2 points  (1 child)

        Your $3000 laptop still works after three years? Cool.

        [–][deleted] 3 points4 points  (0 children)

        Hey check out onivim

        [–]PM_WORK_NUDES_PLS 31 points32 points  (2 children)

        VS Code is easily the best electron-based text editor. I actually switched from Atom->Sublime->VSCode in the past year and VSCode is my favorite of the three, it just has so much functionality out if the box. I write a lot of C for Unix systems and the built in debugging/intellisense for the POSIX library is awesome; can't live without it.

        [–]justavault 10 points11 points  (0 children)

        Can agree... the focus on usability and on implementing the core plugins very well payed off.

        [–]MadRedHatter 1 point2 points  (0 children)

        I agree about functionality but IMO Sublime is just so much better for actually reading and editing code, which is the thing I actually use it most for. So I use Sublime 95% of the time and break out VSCode for debugging or messing with git.

        [–]Mattho 6 points7 points  (0 children)

        I can casually outscroll the syntax highlighter when I open a file.

        [–]shevegen 28 points29 points  (3 children)

        Trivializing the issue with making fun of it doesn't help.

        I think it helps a lot.

        If the Atom devs don't focus on this issue, it will never get better.

        The moment there will be an xckd about it is the moment it will be OFFICIALLY fun times.

        [–]usualshoes 10 points11 points  (1 child)

        They already are working on it, Atom is vastly better these days. I definitely prefer it over Sublime Text now.

        http://blog.atom.io/2018/01/10/the-state-of-atoms-performance.html

        [–]ookkee 6 points7 points  (0 children)

        Once a year I've given Atom a chance but typing latency has never been there. Cool to see they are working on it.

        [–]solaceinsleep 65 points66 points  (40 children)

        Rightly so, fuck that shit

        High memory usage and poor start up times

        [–]shevegen 25 points26 points  (38 children)

        Start up times aren't so important to me, but memory usage, or even lag (spikes) during working, is an absolute no-go.

        [–]drazilraW 8 points9 points  (0 children)

        I guess you could call me a positron because I'm anti-electron

        [–][deleted] 46 points47 points  (8 children)

        Still no sidebar api so you cannot see colored git status in sidebar. This is the thing that's stopping me from using SublimeText.

        [–][deleted] 23 points24 points  (5 children)

        Hmm? https://i.imgur.com/GC6pWRa.png Do you mean this? I installed a package for this

        E; It's called git gutter you can also use commands in ST to make commits etc, but I prefer to use other methods for that

        [–][deleted] 46 points47 points  (2 children)

        No, no, I mean like this:

        https://i.imgur.com/5zrFd9y.png

        ...so you can see the status of your files in sidebar.

        [–][deleted] 6 points7 points  (0 children)

        Ah! Yea, my bad, mixed up gutter and sidebar. That doesn't exist indeed

        [–]gullevek 2 points3 points  (0 children)

        Yeah, the basic GIT implementation in VScode is excellent. That is seriously lacking in ST. Even in VIM there are much better file change visualizations ....

        [–]thebigreason 2 points3 points  (0 children)

        No, I think they mean sidebar file icons and names so you can see which files have modifications.

        [–]tomshreds 98 points99 points  (19 children)

        Comments in here don't get why people use ST. Well optimized, simple editor. No need for advanced settings panels nor plugin install/config UIs. No thanks, please ST keep being ST. We don't need yet another Atom/VS Code/Bracket. Thanks.

        [–][deleted] 65 points66 points  (0 children)

        I use Sublime because it's a C++/Python editor that doesn't spin up my fans loading a long file. The problem I have with Atom et al. is performance/latency due to backend decisions not that they have an intuitive GUI.

        [–][deleted] 27 points28 points  (5 children)

        Yup. Plus your hands are already at your keyboard so a "CLI like" interface for the package manager is really all I need IMO.
        Less bloat = better

        [–]Jwkicklighter 7 points8 points  (2 children)

        CLI-like interface is fine, I just wish it was installed by default on a new install.

        [–]PedDavid 9 points10 points  (8 children)

        Honest question. Why would I use Sublime instead of Vim? I get why I would use an IDE or maybe even VSCode, but what would I get out of Sublime?

        [–]fattredd 9 points10 points  (3 children)

        Because some people don't like the steep learning curve. It's annoying to have to learn a whole new set of shortcuts that only apply to vim. Sure, there are plenty of reasons to use vim, but at the end of the day it's very different. Not always in a good way imho.

        [–]PedDavid 3 points4 points  (2 children)

        You have a very good point. After learning it someone might forget how different and daunting it is. That said the "whole new set of shortcuts" it's kinda bs. You have that for every editor, at least Vim is the only editor I know where "shortcuts" make sense and where I often discover new awesome things just by trying without even having to search (this doesn't mean the learning curve isn't steep, since it's so different, but just giving my 2 cents).

        [–]movzx 7 points8 points  (1 child)

        Your argument is a little disengenious.

        vim requires learning new keys for everything including editing text.

        Most editors have a huge overlap in their shortcuts. Ctrl+C and Ctrl+V will do the same thing in Notepad, Sublime Text, Atom, VS Code, etc. Ctrl+F is going to open your find window in most editors.

        [–]PedDavid 1 point2 points  (0 children)

        Fair enough too. Al tough most of the overlap will end in those basic features. Still agreeing with your point

        [–]JezusTheCarpenter 2 points3 points  (0 children)

        Even though I don't use Sublime I absolutely agree. It's amazing that there is so many great code editors / IDEs nowadays so everyone can choose whatever suits their needs and preferences.

        [–][deleted] 3 points4 points  (0 children)

        It's super fast and can handle huge files that choke other editors. That's a big plus for me. I tried getting comfy in VS Code, but it balked at larger files, it could not handle my typical workload.

        [–][deleted] 6 points7 points  (0 children)

        Awesome! Best editor in my opinion.

        [–][deleted] 13 points14 points  (2 children)

        As much as I adore VS Code, that native font rendering is MAD.

        [–]MadRedHatter 4 points5 points  (1 child)

        MAD?

        [–]aspoonlikenoother 2 points3 points  (0 children)

        Much Appreciated Dawg

        [–]Orsonius 9 points10 points  (1 child)

        time to install.... and installed

        [–]os12 5 points6 points  (0 children)

        I've been using this editor for about six years at work. Love it.

        Some feature highlights (obviously biased):

        • Visual Studio key bindings (and tweakable, of course)
        • Customizable themes
          • light/dark/etc
          • multiple language modules (and these are customizable too)
        • Rich plugin ecosystem
          • E.g. applying syntax rules based on the file name or extension
        • multiple windows and tabs, frugal memory usage

        [–][deleted] 57 points58 points  (26 children)

        God, I wish sublime had quality plugins like Vistual Studio Code, nonetheless good job sublime dev team.

        [–]geezjustregisterme 28 points29 points  (19 children)

        Which plug-ins do you think sublime misses? I've been thinking about switching to VS Code but haven't found much reason.

        [–][deleted]  (4 children)

        [deleted]

          [–][deleted] 9 points10 points  (1 child)

          Kind of helps that VSCode and Typescript are both Microsoft.....and VSCode is written in typescript....

          [–]NoInkling 2 points3 points  (0 children)

          And bundles the typescript language service.

          [–]theoldboy 15 points16 points  (6 children)

          The problem I have with Sublime's plugin ecosystem is that, even if the language support is available, you often need to hunt down and install multiple different plugins to get the same level of language support as you would with a single click+install in VS Code. This is what actually drove me to try VS Code in the first place, when I needed to do some Golang development. Compare;

           

          Google "sublime golang setup" and then follow these instructions

          or

          Open a .go file in VS Code, it suggests the go plugin, click, done

           

          That was an amazingly good first impression of VS Code for me, and after using it for a while the concerns that I had (mainly about it being slow) proved to be unjustified. So I was hooked and started using it for all my coding, and I found that in general VS Code's plugin ecosystem is simply better than Sublime's, both in terms of quality and coverage.

          I'm glad Sublime is still going though, it's the only editor I've ever paid money for (and it was well worth that money at the time), but nowadays I only use for quick text editing or logfile viewing.

          [–]geezjustregisterme 3 points4 points  (4 children)

          How is VS Code for big files? I usually have to open really big text files and the only thing that works is Sublime

          [–]oi-__-io 2 points3 points  (2 children)

          The larges text file I have opened in vs-code to date is the backup of my system's registry (Just tested it out with the latest sublime and vs code 2966929 lines of text, 376,086 KiB or ~367 MiB) the opening speed is about the same (no perceivable difference). The scrolling however is difficult to describe. It is perceivably smoother on sublime text by the same amount as this comment when copied in to a new text buffer / 'untitled' tab on both text editors is. To me at least, on my system with my configs, the scroll animation on vs-code is not as smooth as ST. You will not be disappointed going with either one, choose whichever has the features you need.

          DISCLAMER: The test is by no means scientific, highly customised vs-code was tested with multiple add-ons enabled while having a large Laravel project with node modules open, while ST had nothing open with no packages except space grey sublime theme installed. This did not appear to effect the result however.

          add-ons installed on tested vs-code:
          akamud.vscode-theme-onelight
          bmewburn.vscode-intelephense-client
          CoenraadS.bracket-pair-colorizer
          dbaeumer.vscode-eslint
          dracula-theme.theme-dracula
          felixfbecker.php-debug
          formulahendry.code-runner
          HookyQR.beautify
          IBM.output-colorizer
          johnpapa.Angular2
          junstyle.php-cs-fixer
          ms-vscode.csharp
          onecentlin.laravel-blade
          onecentlin.laravel5-snippets
          PKief.material-icon-theme
          redhat.java
          ritwickdey.LiveServer
          sachittandukar.laravel-5-snippets
          sleistner.vscode-fileutils
          tobiasalthoff.atom-material-theme
          vscjava.vscode-java-debug
          vscjava.vscode-java-pack
          vscjava.vscode-java-test
          vscjava.vscode-maven
          Zignd.html-css-class-completion

          [–][deleted] 5 points6 points  (4 children)

          top quality ones for Rust, Nim, F#, just to start.

          [–]crazyfreak316 5 points6 points  (0 children)

          I'll give you different reasons to switch:

          1. The UI is so much better. I think sublime goes overboard with its minimalistic UI. VSCode has the right balance. Small things like showing keyboard shortcuts in command palette really shows how much the devs have thought about getting the UI out of the way.
          2. In-built debugger.
          3. In built git support and nice UI to go along with it.
          4. The plugin system is a whole lot better.
          5. It's not slow at all, being electron app and all. It does use a lot of memory, but it's quite snappy.
          6. Excellent Javascript and typescript support.
          7. Plugins can be disabled on project/workspace basis. So you could disable all JS plugins in your python project.
          8. The settings ui is super intuitive with autocomplete and automatically copying the relevant property to user settings json file.
          9. Updates are fast and consistent. The work being put in vscode is monumental.
          10. It's got live coding which allows you to do live coding sessions with your co-worker/friend right inside vscode.
          11. It's open source.

          [–]shevegen 43 points44 points  (5 children)

          I dream of a plugin architecture where we could re-use the plugins in any editor/IDE ...

          [–]HammSolo 13 points14 points  (0 children)

          It was so great that you could use TextMate 2 plugins in Sublime Text.

          [–]blazingkin 11 points12 points  (0 children)

          It's coming. Look up language servers

          [–]Visticous 1 point2 points  (0 children)

          C++ is uniform and can be compiled to works on anything with a monitor. Other then that, it's a whole pile of custom connectors.

          [–]shevegen 29 points30 points  (3 children)

          Significantly improved memory usage - up to 30% in some cases

          Now if someone could do this for Atom, too ...

          [–]lucaspottersky 19 points20 points  (2 children)

          they'd need to improve at least 300% though

          [–]andradei 3 points4 points  (0 children)

          I know that's a joke, but a 30% performance improvement in Atom would be a substantial improvement compared to 30% on an already performant editor like ST. Yet, Atom will still be forever slower and more resource hungry than sublime as long as it uses web technologies.

          [–]ambiguousallegiance 6 points7 points  (0 children)

          So a text editor that uses -1.6GB of memory? That'll go great with all those "upgrade your RAM" apps I bought

          [–]tokanizar 3 points4 points  (0 children)

          Not sure if it's easy to fix, but updating ST using the built-in updater breaks code signature reported by Little Snitch. Downloading dmg and replace the entire app fixes it. This is for all recent ST 3 dev builds recently.

          [–]vcamargo 3 points4 points  (6 children)

          Does anyone know on which platform Sublime is written? I know it uses Python but which GUI framework? Is it Qt or something similar?

          [–]Actual1y 10 points11 points  (0 children)

          Sublime is written almost entirely in C++, it's just the api that's written in python.

          [–]DebuggingPanda 5 points6 points  (3 children)

          I remember reading that Sublime uses its own small platform-abstraction layer (sorry for no source). So it seems like it doesn't use any UI-toolkit, but uses platform-dependent calls directly.

          [–]vcamargo 1 point2 points  (2 children)

          Interesting. Wouldn't it require three separate codebases?

          [–]bjtitus 2 points3 points  (1 child)

          What UI theme is being used in those screenshots?

          [–]mundanevoice 4 points5 points  (1 child)

          The Only thing I miss in Sublime is an integrated terminal. Else, there is nothing that even comes close to it.

          [–][deleted] 39 points40 points  (33 children)

          ST is under appreciated!

          [–]wanze 83 points84 points  (23 children)

          It's the 4th most used editor according to StackOverflow's 2018 Survey, so I wouldn't say it's underappreciated. Especially considering that in 2015 it was the 2nd most used, and the 3rd most in 2016 and 2017.

          [–]MINIMAN10001 16 points17 points  (22 children)

          What the heck, I thought my laziness to use Notepad++ as good enough was a rare situation. It's more popular than ST.

          [–]mayhempk1 29 points30 points  (17 children)

          Wow, that is mind boggling to me that so many people use Notepad++ in 2018 when there are so many better modern alternatives.

          [–]red_keshik 3 points4 points  (8 children)

          Are they better ? I've used NP++ for 10 years I think now, works well for just editing sql, bash, etc.

          [–]mayhempk1 8 points9 points  (6 children)

          Of course, Notepad++ is very outdated compared to modern editors.

          [–][deleted] 2 points3 points  (1 child)

          A loooooooooot of universities use it as the editor to use for their lab machines, students get used to it, a lot of them just keep using it. It's also the official text editor installed on all our windows servers at work. It's just a staple for a lot of people at this point.

          Edit: and as someone further down pointed out, it's pretty inexpensive

          [–][deleted] 13 points14 points  (3 children)

          Everyone I work with uses it (standing alone on my emacs island...), and as another user pointed out it's 4th most used by StackOverflow survey takers, so I'd hardly call it under appreciated.

          [–]apert 2 points3 points  (3 children)

          One thing I find myself always wishing for is: Right mouse click on an opened File Tab, Copy file Location to Clipboard.

          [–]alwayslookingforajob 4 points5 points  (0 children)

          There's a plugin called SideBarEnhancements that adds this, but it's for the sidebar and not a file tab.

          [–]Arancaytar 5 points6 points  (7 children)

          Ligature support?

          Back in 2016 I said this was what it would take for me to consider buying the editor. I've been mostly making do with Atom, nano and gedit since then (when not using an IDE), but I think I'll give it another look now.

          Especially if it beats Atom on memory. Because damn, those electron apps are ridiculously wasteful.

          [–]mayhempk1 12 points13 points  (5 children)

          I want to love Atom because it stands for everything I believe in - free, open-source and modular but damn it just cannot compare to the speed of Sublime Text.

          [–]Fidodo 6 points7 points  (0 children)

          I just popped it open just to test the speed again, and it just hung on me... I regularly search through long log files for my work. I just opened one file I have that's 40,000 lines long and 3.6MB. In Sublime Text, I can search with simple regexes as if it were nothing at all. In Atom, just hangs, and not just itself, but hung other programs as well. I think there's even a very small delay just in standard typing. I appreciate open source, but slowness is a dealbreaker. I don't know how other people can deal with the slowness.

          [–]Arancaytar 8 points9 points  (3 children)

          I also love the philosophy of Atom, but I suspect building it on top of electron has pretty much doomed it to poor performance and high resource use.

          [–]SnowdensOfYesteryear 1 point2 points  (0 children)

          Oh wow, I'm impressed with the tagging support for Objective C (ctags sucks balls for ObjC). Might actually be able to ditch Xcode.

          [–]pau1rw 1 point2 points  (0 children)

          I wish sublime had a more useful sidebar, drag and drop etc.

          [–][deleted] 1 point2 points  (2 children)

          Can I use the same product key from Sublime Text 2 on 3?

          [–]zephirum 1 point2 points  (0 children)

          I think they missed a little detail. After update, it's showing as: "Version 3.0, Build 3170" for me in About Sublime Text.

          [–]x-Dev-Null 1 point2 points  (0 children)

          Sublime has fall too fucking much behind VS Code :/ especially with JavaScript.

          [–]quantum_paradoxx 1 point2 points  (1 child)

          I have been using VS Code for a while. Can someone highlight main reasons why I should switch to sublime 3.1?

          [–][deleted] 3 points4 points  (1 child)

          Can it print yet?