Fixing vi paragraph motion: change empty line definition to include blank lines with spaces and tabs


Vim Paragraph Motions

(code from udacity “AI for robotics” class, lesson 8 particle filters)

I was feeling frustrated as the command I use all the time, moving forward or backward by a paragraph using `{` or `}`, was skipping a complete screen up and down. In the above screenshotted example, I was moving from the start of the class definition (up an entire screen) to the end,  instead of the behavior I expected of moving from function to function within the class.

Turns out that the vim’s paragraph definition only includes completely empty lines, and does not include lines that appear empty but have whitespace such as spaces or indents.

Solution

I installed vundle and installed the vim-paragraph-motion plugin. That is, in vim.rc, I added the following bundle line below the plugin vundle.vim line.

“`
Plugin ‘VundleVim/Vundle.vim’
Bundle ‘dbakker/vim-paragraph-motion’
“`

Then I closed and reopened vim, and ran `:BundleInstall`.

Reopened the file I was editing, and voila, paragraph motion commands behaved as I was expecting.

Credit to this post.

Debugging: show whitespace including spaces and tabs

I was confused debugging this for a while, as `:set list` doesn’t show spaces and tabs! So the end character was appearing as a magically “indented” end-of-line character. My search terms were all out of whack.

“`
$
def some func():
$
“`

vs, with help from this post, using `:set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<`

“`
$
def some func():
~~~~$
“`

Bonus! vim: go to definition of variable under cursor

Also, today I discovered the use of `gd` , which moves you to where the variable under your cursor is defined!

Then you can use `Ctrl-O` to move back to where you started (and `Ctrl-I` if you want to go forward in your jump list).

Credit to this post.

Okay! Politics, in 15 minutes a day (6 easy steps)

Update: https://5calls.org has the script I’m using, already written for each issue!

Update: But uh, thesixtyfive.org scripts do have a more reasonable distinction between senators, house of representatives, republicans, and democrats…

Apparently calling is the way to go, much more effective than emails / social media. Thus I spent 10 minutes adding people as contacts to my phone (one-time).

From then on, each day it’s only a 10 minute exercise to call people.

Then I set an alarm for 10 am Monday through Friday. That’s my time to call.

Easy six steps:

  1. I used http://govtrack.us/ and looked up my 2 senators and 1 house representative (1 minute)
  2. I added my three state reps to my phone as starred contacts (3 minutes)
  3. I added four national reps to my phone as starred contacts (3 minutes)
    • Representative Paul Ryan – (202) 225-3031
    • Senator Mitch McConnell – (202) 224-2541
    • Senator Chuck Schumer – (202) 224-6542
    • Representative Nancy Pelosi – (202) 225-4965
  4. Pick a script at https://5calls.org
  5. Added that I called to my google calendar, so I can celebrate becoming involved in politics some day!

Note: You should only call representative in your state!

Note: For people in blue states, my friend says, “It matters slightly less to call, but it’s always important to let reps know what you care about so they know where to focus their energy.”

Note: Make sure you’re not using the script for Senators on your Representative. Also not the script for Democratic Senators on your Republican Senators. Sigh. (I messed this up for the Supreme Court nominee).

List of useful sites:

==========

Previously before I found 5calls.org:

 

  • I looked at the weekly script at thesixtyfive.org/weeklyCTA and pulled out the important sentence. Then followed a shorter script (2 minutes)
  • Called these 7 people during business hours and said:
    “I am opposed to the executive order signed Friday barring citizens of seven predominantly Muslim countries from entering the U.S. I encourage <Representative/Senator> to please oppose implementation of any such ban. Thanks for your hard work answering the phones!” (7 minutes)

 

===========

Above based on notes from a former Congressional Staffer:

1. Give your name, city, and zip code, and say “I don’t need a response.” That way, they can quickly confirm you are a constituent, and that they can tally you down without taking the time to input you into a response database.

2. PLEASE ONLY CALL YOUR OWN REPRESENTATIVES! Your tally will not be marked down unless you can rattle off a city and zip from the state, or are calling from an in-state area code. I know you really want to give other reps a piece of your mind, but your call will be ignored unless you can provide a zip from their district. And don’t try to make this up; I could often tell who was lying very quickly thanks to the knowledge of the state’s geography. Exceptions to this are things like Paul Ryan’s ACA poll which are national.

3. State the issue, state your position. “I am opposed to ________.” “I am in favor of _______.” “I am opposed to banning the import of phalanges.” I am in favor of a trade deal to lower the price of juice smoothies.” That’s it. That’s all we write down so we can get a tally of who is in favor, who is against. It doesn’t matter WHY you hold that opinion. The more people calling, the less detail they have time to write down. Help them out by being simple and direct. This keeps calls shorter, allowing more callers through.

4. Please be nice! The people answering the phones on Capitol Hill already had the hardest job in DC and some of the lowest pay as well, and for a month now their jobs have become absolute murder, with nonstop calls for 9 hours every day. Thank them for their hard work answering the phones, because without them our Senators could not represent us!

What does this sound like?

“Hi, my name is Mark, I’m a constituent from Seattle, zip code 98***, I don’t need a response. I am opposed to banning the sale of blueberries and I encourage the Senator to please oppose implementation of any such ban. Thanks for your hard work answering the phones!”

This is how I wish every caller had phrased their message. It makes it easier for the people answering the phones and takes less time and emotion than a long script. I know that you want to say why, but keeping it short and sweet helps the office answer more calls per hour, meaning more people get heard. The bigger the tally, the more powerful your voice.

Also, when you’re reading off the same script as 100 other callers that day… well…they know what you’re about to say, so you don’t need to use the whole script for your opinion to be heard!

Pick one issue each day, use this format (I am in favor of _____ or I oppose ______), and call your 2 Senators and 1 Representative on their DC and State Office lines, and you’ll be on your way to being heard.

Standing by the Sidelines

In personal terms, life has been crappy for a long time, and could be crappy for a lot longer, maybe years at this rate. But Trump and his supporters are so much worse than I could ever have imagined. I can’t stand by the sidelines anymore.
My parents were immigrants from China, the only reason I even exist today (one child policy). Remember the Chinese Exclusion Act? “The Chinese Exclusion Act was a United States federal law signed by President Chester A. Arthur on May 6, 1882, prohibiting all immigration of Chinese laborers.”
 
Today I walked through a MLK exhibit at the Atlanta airport. I felt really emotional at what he would think of America today.
 
I’ve been angry for a long time about other causes. But all that pales in comparison to what is going on now. I’m not sure what to do or what my participation will look like. But I’ll figure it out soon, and join you all.

Context:

President Trump’s executive order on immigration indefinitely barred Syrian refugees from entering the United States, suspended all refugee admissions for 120 days and blocked citizens of seven Muslim-majority countries, refugees or otherwise, from entering the United States for 90 days: Iran, Iraq, Libya, Somalia, Sudan, Syria and Yemen.

https://www.nytimes.com/2017/01/29/us/trump-refugee-ban-muslim-executive-order.html

projects blog (nouyang)