91³Ô¹ÏÍø

Watch CBS News

Remembering John Lewis, a tenacious fighter who got into "good trouble"

"How long can we be patient?" John Lewis said at the March on Washington, August 28, 1963. "We want our freedom, and we want it now."

He was, until the end, an optimist. In 2015 on "Face the Nation" he said, "When people tell me, 'Nothing has changed,' I just feel like saying, 'Come and walk in my shoes. I will show you."

But the death of George Floyd was a deadly reminder that the work he dedicated his life to wasn't over. In an interview with "CBS This Morning," Lewis remarked, "I kept saying to myself, 'How many more? How many more young black men will be murdered?'"

Just last month, the Georgia congressman appeared at the Black Lives Matter mural not far from the White House — and, in an interview with Gayle King, remained forever hopeful: "It's another step down a very, very long road toward freedom, [and] justice, for all human kind."

john-lewis-portrait.jpg
John Lewis participated in sit-ins to protest segregation, helped form the Student Nonviolent Coordinating Committee, led marches for voting rights, was director of the Voter Education Project, and was elected to Congress 17 times. CBS News

Throughout his life, there was a gentleness about him, peppered with tenacity. He was arrested dozens of times for acts of peaceful civil disobedience.

As he explained to Stephen Colbert on , "I met Rosa Parks in 1957 when I was 17. 1958, I met Dr. King. And these two individuals inspired me to get in trouble. And I've been getting in 'good trouble,' necessary trouble ever since."

In March of 1965, he led the march from Selma to Montgomery, Alabama, across the Edmund Pettus Bridge. He told reporters then, "We are marching to our State Capitol to dramatize to our nation and to the world our determination to win first-class citizenship."

He almost paid for his convictions that day with his life, on what history will forever call "Bloody Sunday."

"I was the first person to be hit," he recalled, "and I still have the scar on my forehead. I thought I was going to die on this bridge."

Unlike Martin Luther King Jr., or Malcolm X, John Lewis wasn't frozen in history.

He was a living presence, forever reminding us that we could do better, we should do better, and in his mind, will do better.

As he told John Dickerson on "Face the Nation" in 2016, "I really believe, if we get it right in America, maybe it can serve as a model for the rest of the world."

Story produced by Jon Carras. Editor: David Bhagat. 

From 1998: John Lewis’ long march 10:07
View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=fd53910ecf4604072044ab7c46d9b028'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });