Please let me know if this script can be improved to handle that case, or in any other ways.
Unfortunately, the one thing I haven't figured out is how to get it to open without an input file, so to start a new text file I have to go to the Terminal and type vi filename. I also checked the Change All box back in the Get Info window. Select that, and a window will open where you can choose your saved application (check the Always Open With box, too). Under Open With, at the bottom of the pull-down menu, is Other. To use your new application to open any text file, control-click on a text file and choose Get Info from the pop-up menu. Sure nano has that retro terminal feel, but it’s an easy enough method to make simple host file changes.Tell application "System Events" to tell process "Terminal" to keystroke "t" using command downĭo script "vi " & quoted form of POSIX path of inputfile in selected tab of the front windowĬopy it into Script Editor, and save it as an Application called VI. Since Lion has rolled out, I have reverted back to the old standby of using nano to edit. Even though you are running as a superuser, the file within textedit will be locked. The versioning functions of OS X Lion will prevent this tutorial from working correctly. Just keep in mind that most system files are protected from writing for a good reason (like if you make a mistake editing them, bad things may happen) so edit at your own risk. Edit to your heart’s content and save normally when you are done. Once you enter your password, a TextEdit window will open and the contents of the file you are editing will appear.
The correct password is your own (the password of the user logged into OS X, also the password you provide when doing system updates and so on), not the root user’s password (which doesn’t exist by default, anyway). When you run this command from a command line (in a Terminal window), you’ll be prompted for a password. In many systems this terminal command may work better: Sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /etc/hosts In the case of TextEdit, the path to this executable is /Applications/TextEdit.app/Contents/MacOS/TextEditīased on this information, running TextEdit with sudo to edit the /etc/hosts file becomes a simple task (if a rather long command line, sorry): Of interest to us is the location of the actual executable file inside the app directory. This directory structure allows the applications to have many supporting files and resources neatly contained within them. If you look in a few, you’ll see that there is some standard organization in them and that should make you feel a little warmer and possibly fuzzier about this whole situation. You can change directory into one of these directories and look around. If you list the files from the command line ( ls -l /Applications ) they are actually directories, not simply files, and have a. When you look at the /Applications folder in a finder window, you’ll see the applications listed by name such as TextEdit. If you’ve never poked around at an application in OS X, it’s interesting to take a peek. In this case we want to launch the TextEdit application. Most commonly (and by default) the other user is root, the superuser of the system who can do anything to any file on the box. The sudo command line application allows a user to run another application as though they are another user.
Following the steps in this recipe, you can edit a system file using TextEdit and put off learning vi for another day.
An alternative is the use of TextEdit, the graphical text editor application, but under normal circumstances, you can open a system file like hosts but cannot save it. To the uninitiated, vi can cause intestinal distress and hair loss. Typically, this is accomplished using sudo (which lets authorized users assume superuser powers, cape and tights optional) and vi. Editing some files on an OS X system requires superuser or root permissions.