Assignment #2 - Practicing with Emacs and VI, and Permissions

Due: MONDAY, JUNE 18, 11:59:59PM


To practice with the basics and more of the text editors, emacs and vi, as well as practice with setting file permissions.


  • Use your CS login to help you answer these questions. Write or paste answers in a text file (like you did for assignment 1 -- same format). Any other type of file WILL NOT BE ACCEPTED.
  • While these questions on the editors can easily be looked up, it is recommended that you actually OPEN emacs and vi for those questions and try these commands out yourself, to get a feel for these two text editors. Try these commands on a text file that has some text inside of it - not just on an empty text file. This will help you on the test, and in future CS courses, especially if you choose to specialize in utilizing one of these editors.

  • Questions

    Question 1 (10 points)
    Write the keystrokes needed for the commands in vi if the editor is currently in "Command" mode.
    a. Delete 4 lines, starting from the current line.
    b. Search "dog" or "Dog" in the entire document
    c. Delete 6 characters, starting from the current position
    d. Switch to "insert" mode.
    e. Undo the most recent command.
    Question 2 (10 points)
    Briefly explain what the given command would do in vi if the editor is currently in command mode. (Hint: Go try these commands 
    and verify what they do).
    a. :wq!
    b. :%s/dog/Dog/g
    c. 2fa
    d. yy (Hint: after doing this, go elsewhere in the file and do the command p)
    e. gg
    Question 3 (10 points)
    Write the keystrokes needed for these commands in editor emacs. Assume that you want to accomplish each task with as few 
    keystrokes as possible.
    a. Search backward
    b. Cut text from the "mark" to the current position
    c. Move to the end of the line
    d. Move forward one page
    e. Save buffered text to currently specified file
    Question 4 (10 points)
    Briefly explain what each of the given commands would do in editor emacs. Note that the ^ symbol in these commands represents 
    the Control key.
    a. ^x u
    b. ^b
    c. ^y
    d. ^x ^c
    e. ^s
    Question 5 (10 points)
    For questions a and b, write out two different ways (using numerical and letter methods) to change the permissions of the file 
    "thing.txt" to the permissions specified.
    a. User has read, execute permissions, group has read permissions, other has write and execute permissions
    b. User has no permissions, group has read write execute permissions, other has write permissions
    c. What are the default permissions of a newly created text file?
    d. What are the default permissions of a newly created directory? WHY does it differ from the permissions of a new text file? 
    Name one command that would not produce the desired result when a directory that is not executable is used as a parameter to 
    the command.

    Format of the Assignment:

    The submitted assignment document is expected to be in plain text format in a single file, named this way:
    assign2_lastname_firstname.txt where you substitute your own last name and first name in the filename, in the format above. For instance, my file would be assign2_vastola_melina.txt
    The assignment file should be formatted as follows:
    COP3353 - Spring 2016
    Assignment 2 Solution - Due Date Here
    Name: Your Name
    Question 1 (10 points):
    Your Solution
    Question 2 (10 points):
    Your solution 
    (etc) ...


    Make sure you are logged into and the file you want to submit is stored in your current working directory.
    To submit, type the following command:
    ~vastola/usub/submit2 yourFilename
    where you substitute your filename above as the parameter. Example -- if my file is called assign1_vastola_melina.txt, I would type:
    ~vastola/usub/submit2 assign1_vastola_melina.txt
    This will run a script and a C++ program that copies your file into a submission directory. The program will also give you feedback at the end -- it will display the contents of the file you just submitted to standard output. This will allow you to check to make sure that what you submitted was correct.